Best Regards
Note pan is a separate instance of JPanel from that constructed by MyPanel
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<--------------------------
This is covered in the Swing tutorial, which you should have read and should
read now. In particular, the EDT is covered in:
<http://java.sun.com/docs/books/tutorial/uiswing/concurrency/index.html>
See also:
<http://www.google.com/search?q=Java+EDT>
or
<http://www.google.com/search?q=Java+"Event+Dispatch+Thread">
GIYF.
--
Lew
>
>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.
Visual SlickEdit is great for this. You just drag a rectangle with
the right mouse button and hit delete. Intellij has column mode -- not
quite so convenient, but great for doing things like stripping off
line numbers.
I do all kinds of data manipulation tasks using just the column, sort
and regex search replace features of Slick Edit. It saves writing
reams of one-shot code.
--
Roedy Green Canadian Mind Products
http://mindprod.com
Nothing has really happened until it has been recorded.
~ Virginia Woolf (born: 1882-01-25 died: 1941-03-28 at age: 59)
>1-Class MyPanel
>2-Class MyFrame
>3-Class Main
see http://mindprod.com/jgloss/jframe.html
http://mindprod.com/jgloss/jpanel.html
UltraEdit can edit rectangular.
Arne
Arne Vajhøj wrote:
> UltraEdit can edit rectangular.
So can emacs. So can vi. So can Textpad. So can eclipse with a plugin.
There used to be a plugin for NetBeans but I'm not finding it right now.
--
Lew