我刚开始学习Java中的GUI编程。现在我可以通过继承JFrame创建指定大小的窗口。然而,我在这里读到了一些帖子,说最好不要继承JFrame。于是我尝试在JPanel中设置大小来创建一个窗口,但setSize似乎不起作用(我的代码可能缺少某些东西)。
以下是我创建的窗口的代码:
我尝试在我的Frame类中添加frame.pack(),因为我认为未设置大小的框架太小,无法看到面板 - 我错了。
我的代码缺少什么?
以下是我创建的窗口的代码:
import javax.swing.JFrame;
public class MyFrame{
private JFrame mainFrame;
private MyPanel mainPanel;
public MyFrame(){
mainFrame = new JFrame();
mainPanel = new MyPanel(50, 50);
mainFrame.add(mainPanel);
mainFrame.setVisible(true);
}
}
这是我的面板代码:
import javax.swing.JPanel;
public class MyPanel extends JPanel{
public MyPanel(int i, int j){
setSize(i, j);
}
}
我尝试在我的Frame类中添加frame.pack(),因为我认为未设置大小的框架太小,无法看到面板 - 我错了。
我的代码缺少什么?
Frame
和Panel
都是自定义组件的混淆名称,因为AWT包具有相同名称的组件。 请为类使用更原始的名称,即使/特别是在供他人查看的短代码片段中也是如此。 我通常使用WhatTheAppDoesFrame
和HowThisComponentGroupCanBeDescribedPanel
的策略。 - Andrew Thompson