Tôi đang cố gắng tạo một JDialog tùy chỉnh bằng cách sử dụng windowBuilder, nhưng ngay từ đầu tôi đã gặp phải một số vấn đề. Vì vậy, đây là:Java không thể gọi JDialog đơn giản được xây dựng bằng cách sử dụng eclipse WindowBuilder
Tôi đã tạo Jdialog đơn giản bằng cách sử dụng windowBuilder. Ở đây nó là mã:
public class GroupFrame extends JDialog {
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
GroupFrame dialog = new GroupFrame();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public GroupFrame() {
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setLayout(new FlowLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("OK");
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}
Nhưng sau đó tôi muốn thay đổi công main (String [] args) static void một cái gì đó giống như public void show().
Các chương trình mới() phương pháp mã là:
public void show() {
try {
GroupFrame dialog = new GroupFrame();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
Vì vậy, khi tôi đang triyng để gọi phương thức thay đổi này bằng cách sử dụng đoạn mã sau:
GroupFrame groupFrame = new GroupFrame();
groupFrame.show();
tôi đã có StackOverflowError (Thật là ngẫu nhiên!; D):
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
at sun.awt.Win32GraphicsConfig.getBounds(Unknown Source)
at java.awt.Window.init(Unknown Source)
at java.awt.Window.<init>(Unknown Source)
at java.awt.Window.<init>(Unknown Source)
at java.awt.Dialog.<init>(Unknown Source)
at java.awt.Dialog.<init>(Unknown Source)
at javax.swing.JDialog.<init>(Unknown Source)
at javax.swing.JDialog.<init>(Unknown Source)
at javax.swing.JDialog.<init>(Unknown Source)
at UILayer.GroupFrame.<init>(GroupFrame.java:32)
at UILayer.GroupFrame.show(GroupFrame.java:21)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at UILayer.GroupFrame.show(GroupFrame.java:23)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at UILayer.GroupFrame.show(GroupFrame.java:23)
(etc...)
Có ai cho tôi biết những gì tôi đang làm không?
Cảm ơn trước!
Và mã của phương thức show() là? –
xin lỗi, đã sửa. –