I am trying to create a custom JDialog using windowBuilder, but at the very beginning I had some problems. So here they are:
I created a simple Jdialog using windowBuilder. Here is the code:
public class GroupFrame extends JDialog { private final JPanel contentPanel = new JPanel(); 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(); } } 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); } } } }
But then I want to change public static void main (String [] args) to something like public void show () .
New show () method:
public void show() { try { GroupFrame dialog = new GroupFrame(); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setVisible(true); } catch (Exception e) { e.printStackTrace(); } }
So, when I triya to call this modified method using the following code:
GroupFrame groupFrame = new GroupFrame(); groupFrame.show();
I have a StackOverflowError (what a coincidence !; 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...)
Can someone tell me what I am doing wrong?
Thanks in advance!
source share