Re: Adding JPanel to JFrame
On Feb 15, 2:18 am, RedGrittyBrick <RedGrittyBr...@spamweary.invalid>
wrote:
On 15/02/2010 08:52, BEHROUZ wrote:
2. package mypaneltest;
3. import javax.swing.JButton;
4. import javax.swing.JPanel;
5.
6. public class MyPanel extends JPanel {
7. public MyPanel(){
8. JPanel pan = new JPanel();
9. JButton okButton = new JButton("OK");
10. pan.add(okButton);
Note pan is a separate instance of JPanel from that constructed by MyPane=
l
Delete 8. and replace 109 with
add(okButton)
Note that your should also construct your GUI on the EDT - you will
have problems later if you don't.
You should also pack() your JFrame.
11. }
12. }
13. //====================
==
14. package mypaneltest;
15. import javax.swing.JFrame;
16.
17. public class MyFrame extends JFrame {
18. public MyFrame(){
19. super("Test");
20. setSize(300,200);
21. setLocationRelativeTo(null);
22. MyPanel pane = new MyPanel();
23. add(pane);
24. }
25. }
26. //====================
===
27. package mypaneltest;
28.
29. public class Main {
30. public static void main(String[] args) {
31. new MyFrame().setVisible(true);
32. }
33. }
It's good that you provided the full code that illustrates your problem.
It's bad that you added line numbers. I couldn't immediately see what
was causing your problems and the line numbers prevent me using
cut&paste to put your code into a Java compiler.
Here's how I'd have written it
---------------------8<--------------------------
package org.redgrittybrick.test.swing;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class MyPanelTest {
/**
* @author: RedGrittyBrick
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyPanelTest().createAndShowGUI();
}
});
}
private void createAndShowGUI() {
JPanel p = new JPanel();
p.add(new JButton("OK"));
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(p);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}}
---------------------8<--------------------------
Thanks,
I got it now, but what is EDT?
**Note that your should also construct your GUI on the EDT - you will
have problems later if you don't.**
could you please tell me more?