1. 程式人生 > >JAVA學習中Swing部分JDialog對話方塊窗體的簡單學習

JAVA學習中Swing部分JDialog對話方塊窗體的簡單學習

package com.swing;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

/**
 * 1:JDialog窗體時Swing元件中的對話方塊,

 * JDialog的功能就是是從一個窗體中彈出另一個窗體,就像是在使用瀏覽器時彈出的確定對話方塊一樣
 *
 * 2:JDialog窗體和JFrame窗體類似,在使用時也需要呼叫getContentPane()方法將
 * 窗體轉化為容器,然後在容器中設定窗體的特性
 *
 * 3:JDialog有五種構造方法,可以用來指定標題,窗體,和模式的對話方塊
 * @author biexiansheng
 *
 */
public class JDialogTest extends JDialog{

    public JDialogTest(){
        //例項化一個JDialog類物件,指定對話方塊的父窗體,窗體標題和型別

        super();
        Container container=getContentPane();
        container.setBackground(Color.green);
        container.add(new JLabel("這是一個對話方塊"));
        setBounds(120,120,100,100);
    }

    public void MyFrame(){
        JFrame jf=new JFrame();//例項化JFrame物件
        Container container=jf.getContentPane();//將窗體轉化為容器

        JButton jb=new JButton("彈出對話方塊");
        jb.setBounds(10, 10, 100, 20);//設定按鈕的大小
        jb.addActionListener(new ActionListener() {
            //定義匿名內部類,這樣才可以點擊出現反應
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                new JDialogTest().setVisible(true);;
            }
        });
        container.add(jb);//將按鈕新增到容器中,這點非常重要,不然無法顯示
        //設定容器的結構的特性
        jf.setTitle("這是窗體轉化為容器");
        jf.setSize(200,200);//設定容器的大小
        jf.setVisible(true);//使窗體可見
        //設定窗體的關閉模式
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JDialogTest jd=new JDialogTest();
        jd.MyFrame();
    }

}

標準案例如下

package com.swing;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

/**
 * 1:按鈕JButton
 * @author biexiansheng
 *
 */
public class MyFrame extends JFrame {

    public void MyFrame(){
        JFrame jf=new JFrame();//例項化一個JFrame物件
        Container container=jf.getContentPane();//將窗體轉化為容器
        //Container container=getContentPane();
        container.setLayout(null);

        JLabel jl=new JLabel("這是一個JFrame窗體");//在窗體中設定標籤
        jl.setHorizontalAlignment(JLabel.CENTER);//將標籤中的文字置於標籤中間的位置
        container.add(jl);//將標籤新增到容器中

        JButton jb=new JButton("點我");//例項化一個按鈕屬性
        jb.setBounds(20, 20,100, 50);
        jb.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                //使MyJDialog窗體可見
                new MyJDialog(MyFrame.this).setVisible(true);
            //上面一句話使對話方塊窗體可見,這樣就實現了當使用者單機該按鈕後將彈出對話方塊的功能
            }
        });
        container.add(jb);//將按鈕屬性新增到容器中

        //設定容器裡面的屬性特點
        container.setBackground(Color.blue);
        //設定容器的框架結構特性
        jf.setTitle("這是一個容器");//設定容器的標題
        jf.setVisible(true);//設定容器視覺化
        jf.setSize(450, 400);//設定容器的大小
        //設定容器的關閉方式
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyFrame fm=new MyFrame();
        fm.MyFrame();
    }

}

class MyJDialog extends JDialog{
    //本例項程式碼可以看到,JDialog窗體和JFrame窗體形式基本相同,甚至在設定窗體的特性
    //時呼叫的方法名稱都基本相同,如設定窗體的大小,設定窗體的關閉狀態等
    public MyJDialog(MyFrame frame){//定義一個構造方法
        //例項化一個JDialog類物件,指定對話方塊的父窗體,窗體標題,和型別
        super(frame,"第一個JDialog窗體",true);
        Container container=getContentPane();//建立一個容器
        container.add(new JLabel("這是一個對話方塊"));//在容器中新增標籤
        container.setBackground(Color.green);
        setBounds(120,120,100,100);

    }
}

相關推薦

JAVA學習Swing部分JDialog對話方塊窗體簡單學習

package com.swing;import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent;i

java Swing 彈出新對話方塊的方法,以及關閉新對話方塊遇到的問題和解決方法

GIFShow 是JFrame的一個繼承類。 public class GIFShow extends JFrame {} 在另一個視窗中的button事件中,實現             &

java swing 彈出對話方塊與父視窗傳值例項

 /**   * Main entry of the class.   * Note: This class is only created so that you can easily preview the result at runtime.   * It is not expected to be m

Java Swing 彈出對話方塊的使用

ConfirmDialog   ---  確認對話方塊,提出問題,然後由使用者自己來確認 ( 按 "Yes" 或 "No" 按鈕 ) InputDialog   ---  提示輸入文字 MessageDialog   ---  顯示資訊 OptionDialog   --  組合其它三個對話方塊型

QT學習day02---圖形介面、對話方塊、訊號與槽

一、QT圖形介面 ①QT座標軸 起點:左上角 X:橫軸 Y:縱軸 ②QWidget、QDialog、QMainWindow的異同點 QWidget:視窗為空,什麼內容都沒有 QMainWindow:含有選單欄,狀態列,工具欄等…已經包含了QWidget QDialog:對話方塊(

JAVA專案出現部分中文亂碼問題

可見的問題就是windos系統執行都有問題,linux執行沒有問題,肯定是配置問題嘍 看程式碼一行一行排查到JAVA toString()進入視線 翻文件這種解釋 *toSting(String charsetName)不是將內容轉換成charsetName的格式,而是

MFC的模態對話方塊和非模態對話方塊

MFC筆記之模態對話方塊和非模態對話方塊 迫於科研的進度壓力,我還是選擇了MFC最為工具去開發裝置除錯軟體,最初想用Qt來創新一下,然而串列埠的通訊一直沒有成功,而且周圍沒有人用Qt使得我在遇到問題無法

MFC程式主、子對話方塊類之間獲取CSocket類物件出錯問題解析:error C2248: “CSocket::CSocket”: 無法訪問 private 成員(在“CSocket”類宣告)

(1)錯誤描述:在MFC程式中主對話方塊類利用網路套接字CSocket類和下位機進行通訊;在MFC程式中子對話方塊類想要獲取主對話方塊類的網路套接字變數時,可以通過 CMainDlg* parent;  //指向主對話方塊的指標 獲取到主對話方塊的指標進而獲取到指向套接字

Java-記事本程式、檔案選擇對話方塊(JFileChooser)

基本的GUI基礎和IO基礎 核心程式碼 JFileChooser jfc = new JFileChooser(); jfc.setDialogTitle("另存為..."); // jfc.showOpenDialog(null); // 顯示開啟檔案

重新開始vc6/mfc學習——3.定時器、對話方塊以及選單的初步使用

     清華出版的davis chapman著,駱長樂譯的《學用visual c++ 6.0》,買了大概有7,8年了,從來沒有看完過,這是一本循序漸進,注重實用的書籍,我個人認為不錯,只是不知道在vs2010都已經發布的今天,再學習vc6是不是太落後?總之,從遙遠的中國帶著

android學習之使用AlertDialog建立對話方塊

package com.example.learn.emptyactivity; import android.app.AlertDialog; import android.content.DialogInterface; import android.support.

在基於對話方塊MFC動態的新增對話方塊

        在Dialog類中新增兩個私有成員變數m_imagelist,m_toolbar,型別如下CImageList,CToolBar      在OnInitDlalog方法中新增如下程式

安卓實現自定義對話方塊以及自定義顯示位置

專案中有用到如下的對話方塊效果,本來是想用popwindow來實現的結果發現不能覆蓋原來的佈局,不知道是我瞭解的不夠還是本身就不行,發現彈出的對話方塊會與原來的佈局重疊 後面就用對話方塊來實現了,接下來講一下如何實現自定義對話方塊和自定義對話方塊的彈出位置

Android 4 學習(21):對話方塊

對話方塊 建立Dialog的兩種方式: 1. 使用Dialog類或其子類,包括DialogFragment 2. 在Activity中使用Dialog主題(theme) 下面是使用Dialog類的一個例子: // Create the new Dialog.Dialog dialog = n

在Delphi使用Windows公用對話方塊

Delphi中的所有對話方塊使用一個公用方法:Execute方法來呼叫顯示對話方塊。 如:   if openDialog1.Execute then   begin   {如果在對話方塊中按確定返回時執

Android自定義Dialog對話方塊消除邊距消除黑邊框和顯示動畫

這兩天練習一個專案 顯示對話方塊類似於QQ發表說說,寬是充滿螢幕的 並且有上下的顯示隱藏動畫 但是AlertDialog預設顯示模式是有邊距的 用了很多方法怎麼也消除不了AlertDialog的邊距 如下圖這樣 後來選擇使用Dialog消除了預設邊距的

Java部分的執行順序

直接看程式碼,這個例子寫的比較複雜,包含了大多數情況,所以讀起來得耐心點。 public class ClassLoadTest { ClassLoadTest(){ System.out.println("構造一個ClassLoad

asp.net的彈出對話方塊(舟無泊總結)

在編寫程式時,有時候我們希望程式在執行時,能彈出對話方塊,給使用者一些提示,特別是對於一些錯誤錯操作的提示和重要資訊修改的確認提示。 (1)提示對話方塊:也就是對使用者的操作作一些提示,它是一個只帶有“確定”按鈕的模式對話方塊。這種對話方塊比較簡單,在需要提示的地方寫上如下程

安卓幾種常見對話方塊

AlertDialog dialog = null; private void showSetupPwdDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); View view = View.infla