我是oo的新手,我创建了一个类,它是我程序的大多数接口,我把它们放在一个类中。然后我想将我的Panel类添加到我的主类中,这样我的面板就会附加到我的Frame:
这是我试过的,我没有收到任何错误,当我运行我的程序但面板没有显示时:
小组类:
public class PanelDriver extends JPanel {
public JPanel p1, myg;
public PanelDriver() {
JPanel p1 = new JPanel();
p1.setBackground(Color.CYAN);
// Graphicsa myg = new Graphicsa();
JTextArea txt = new JTextArea(5,20);
txt.setText("test");
p1.add(txt);
}
}
主要课程:
public class GraphicMain {
public static void main(String[] args) {
JFrame frame = new JFrame("My Program");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
PanelDriver panels = new PanelDriver();
frame.getContentPane().add(panels);
GridLayout layout = new GridLayout(1,2);
}
答案 0 :(得分:0)
你需要一个超级电话(因为你扩展了JPanel,你不需要创建一个新的)和Panel类中的布局,如下所示:
public class CustomerTest extends JPanel {
public CustomerTest() {
super();
this.setBackground(Color.CYAN);
this.setLayout(new BorderLayout());
JTextArea txt = new JTextArea();
txt.setText("test");
this.add(txt);
this.setVisible(true);
}
}
然后在你的主类中使用它,将框架设置为可见并显示内容。您必须在创建框架后设置框架的布局:
JFrame frame = new JFrame("My Program");
GridLayout layout = new GridLayout(1, 2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
CustomerTest panels = new CustomerTest();
frame.getContentPane().setLayout(layout);;
frame.add(panels);
frame.setVisible(true);
答案 1 :(得分:0)
您的PanelDriver
班级会创建p1
JPanel
,但不会将其添加到任何内容中。
至少将其添加到PanelDriver
本身:
this.add(p1);
请注意,正如您的代码所示,框架甚至不显示,请查看@XtremeBaumer的答案以修复该部分。