中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

Java Swing對話框的事件處理

小樊
92
2024-08-30 07:10:16
欄目: 編程語言

在Java Swing中,對話框(JDialog)的事件處理通常涉及到以下幾個方面:

  1. 監聽按鈕點擊事件:當用戶點擊對話框中的按鈕時,需要執行相應的操作。這可以通過為按鈕添加ActionListener來實現。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class DialogExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Dialog Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setVisible(true);

        JButton button = new JButton("Open Dialog");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                openDialog(frame);
            }
        });

        frame.getContentPane().add(button, BorderLayout.CENTER);
    }

    private static void openDialog(JFrame parent) {
        JDialog dialog = new JDialog(parent, "My Dialog", true);
        dialog.setSize(200, 100);

        JButton okButton = new JButton("OK");
        okButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("OK button clicked");
                dialog.dispose();
            }
        });

        JButton cancelButton = new JButton("Cancel");
        cancelButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Cancel button clicked");
                dialog.dispose();
            }
        });

        JPanel buttonPanel = new JPanel();
        buttonPanel.add(okButton);
        buttonPanel.add(cancelButton);

        dialog.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
        dialog.setLocationRelativeTo(parent);
        dialog.setVisible(true);
    }
}
  1. 監聽對話框關閉事件:當用戶點擊對話框的關閉按鈕或者按下Esc鍵時,可能需要執行一些操作。這可以通過為對話框添加WindowListener來實現。
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class DialogExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Dialog Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setVisible(true);

        JButton button = new JButton("Open Dialog");
        button.addActionListener(e -> openDialog(frame));

        frame.getContentPane().add(button, BorderLayout.CENTER);
    }

    private static void openDialog(JFrame parent) {
        JDialog dialog = new JDialog(parent, "My Dialog", true);
        dialog.setSize(200, 100);

        dialog.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.out.println("Dialog closed");
                dialog.dispose();
            }
        });

        JLabel label = new JLabel("This is a dialog");
        dialog.getContentPane().add(label, BorderLayout.CENTER);
        dialog.setLocationRelativeTo(parent);
        dialog.setVisible(true);
    }
}

這些示例展示了如何在Java Swing對話框中處理按鈕點擊和對話框關閉事件。你可以根據自己的需求進行修改和擴展。

0
晴隆县| 黑龙江省| 新巴尔虎右旗| 武威市| 肇庆市| 大石桥市| 会理县| 德清县| 碌曲县| 泰来县| 凯里市| 辽阳市| 广丰县| 资阳市| 连山| 偏关县| 建德市| 敦化市| 红原县| 金昌市| 遵义市| 南乐县| 沂南县| 正镶白旗| 赤峰市| 宜兰县| 龙州县| 崇仁县| 峨山| 云浮市| 夏津县| 桃园县| 南澳县| 台北县| 隆安县| 固安县| 开平市| 五峰| 延寿县| 娄底市| 渭南市|