在Java中,要自定義一個JDialog
,您需要擴展JDialog
類并重寫相關方法。以下是一個簡單的示例,展示了如何創建一個自定義的JDialog
:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CustomJDialog extends JDialog {
public CustomJDialog(Frame owner, String title) {
super(owner, title, true);
setSize(300, 200);
setLocationRelativeTo(owner);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
initComponents();
}
private void initComponents() {
JPanel contentPane = new JPanel();
contentPane.setLayout(new BorderLayout());
JLabel label = new JLabel("這是一個自定義對話框");
contentPane.add(label, BorderLayout.CENTER);
JButton closeButton = new JButton("關閉");
contentPane.add(closeButton, BorderLayout.SOUTH);
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("自定義對話框示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
CustomJDialog customDialog = new CustomJDialog(frame, "自定義對話框");
customDialog.setVisible(true);
}
});
}
}
在這個示例中,我們創建了一個名為CustomJDialog
的類,它擴展了JDialog
。我們在構造函數中設置了對話框的所有權、標題、大小、位置和關閉操作。然后,我們調用initComponents()
方法來初始化對話框的組件,如標簽和按鈕。
在initComponents()
方法中,我們創建了一個JPanel
作為內容面板,并設置了其布局。然后,我們添加了一個標簽和一個按鈕到內容面板上。最后,我們為按鈕添加了一個ActionListener
,當用戶點擊按鈕時,對話框將關閉。
在main()
方法中,我們創建了一個JFrame
和一個CustomJDialog
實例,并分別設置它們的可見性。這樣,當您運行程序時,您將看到一個包含自定義對話框的窗口。