如何在 Java 中建立無模態和模態 JDialog?


MODELESS 型別

以下是一個使用模態型別 MODELESS 設定 JDialog 的示例 −

示例

import java.awt.Cursor;
import java.awt.Dialog.ModalityType;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class SwingDemo {
   public static void main(String[] args) {
      JFrame frame = new JFrame();
      frame.setSize(new Dimension(600, 400));
      JDialog dialog = new JDialog(frame, "New",ModalityType.MODELESS);
      dialog.setSize(300, 300);
      frame.add(new JButton(new AbstractAction("Click to generate") {
         @Override
         public void actionPerformed(ActionEvent e) {
            frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
            dialog.setVisible(true);
         }
      }));
      frame.setVisible(true);
   }
}

輸出

現在,點選它以生成一個新的 Dailog。由於它是 Modeless,因此你可以隨時關閉兩個對話方塊 −

模態對話方塊

以下是一個模態對話方塊的示例 −

示例

import java.awt.Cursor;
import java.awt.Dialog.ModalityType;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class SwingDemo {
   public static void main(String[] args) {
      JFrame frame = new JFrame();
      frame.setSize(new Dimension(600, 400));
      JDialog dialog = new JDialog(frame, "New",ModalityType.APPLICATION_MODAL);
      dialog.setSize(300, 300);
      frame.add(new JButton(new AbstractAction("Click to generate") {
         @Override
         public void actionPerformed(ActionEvent e) {
            frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
            dialog.setVisible(true);
         }
      }));
      frame.setVisible(true);
   }
}

輸出

現在,點選它以生成一個新的 Dailog。由於它不是 Modeless,因此你不能在任何時候關閉兩個對話方塊。你必須先關閉新對話方塊,然後你才能關閉第一個對話方塊 −

更新於:30-7-2019

474 次瀏覽

開啟你的職業生涯

完成課程以獲得認證

入門
廣告
© . All rights reserved.