Accessing JFrame from seperat file?
I've built a simple programe to illustrat my problem. I'm trying to use a JFrame in my mane page and to build my JPanel in a seperat file. My problem is that I can't find how to switch JPanel from the seperate file.
Here's my 3 pages:
test.java
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test {
public static JFrame frame = new JFrame ("MyPanel");
public static void main (String[] args) {
page1 MyPanel1 = new page1();
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add (MyPanel1);
frame.pack();
frame.setVisible (true);
}
}
page1.java
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class page1 extends JPanel {
public page1() {
JButton page1BTN = new JButton ("Page 1");
page1BTN.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
page1BTN_Clicked(e);
}
});
setPreferredSize (new Dimension (234, 175));
setLayout (null);
add (page1BTN);
page1BTN.setBounds (55, 70, 100, 20);
}
protected void page1BTN_Clicked(ActionEvent e) {
page2 MyPanel2 = new page2();
super.removeAll();
super.add(MyPanel2);
super.validate();
}
}
page2.java
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class page2 extends JPanel{
public page2() {
JButton page2BTN = new JButton ("Page 2");
page2BTN.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
page2BTN_Clicked(e);
}
});
setPreferredSize (new Dimension (234, 175));
setLayout (null);
add (page2BTN);
page2BTN.setBounds (55, 70, 100, 20);
}
protected void page2BTN_Clicked(ActionEvent e) {
page1 MyPanel1 = new page1();
super.removeAll();
super.add(MyPanel1);
super.validate();
}
}
Answer to my own question...
For those out there with the same problem reading this thread, here's my working code:
test.java
Code:
import javax.swing.*;
public class test {
public static JFrame frame = new JFrame ("MyPanel");
public static void main (String[] args) {
page1 MyPanel1 = new page1();
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add (MyPanel1.getPanel());
frame.pack();
frame.setVisible (true);
}
public static void changePanel(JPanel jp){
//JOptionPane.showMessageDialog(null,frame);
frame.getContentPane().removeAll();
frame.getContentPane().add (jp);
frame.pack();
frame.validate();
}
}
page1.java
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class page1 extends test {
public page1() {
}
public JPanel getPanel(){
JPanel jp = new JPanel();
JButton page1BTN = new JButton ("Page 1");
page1BTN.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
page2 MyPanel2 = new page2();
changePanel(MyPanel2.getPanel());
}
});
jp.setPreferredSize (new Dimension (234, 175));
jp.setLayout (null);
jp.add (page1BTN);
page1BTN.setBounds (55, 70, 100, 20);
return jp;
}
}
page2.java
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class page2 extends test{
public page2() {
}
public JPanel getPanel(){
JPanel jp = new JPanel();
JButton page2BTN = new JButton ("Page 2");
page2BTN.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
page1 MyPanel1 = new page1();
changePanel(MyPanel1.getPanel());
}
});
jp.setPreferredSize (new Dimension (200, 150));
jp.setLayout (null);
jp.add (page2BTN);
page2BTN.setBounds (55, 70, 100, 20);
return jp;
}
}