【发布时间】:2014-04-30 04:45:45
【问题描述】:
如何将面板放入框架中。我已经尝试了几个小时,但还是不明白。
我尝试了JPanel panel = new TopPanel();,但它不会调用框架。我们的老师一周前在初学者课上教给我们这个,从那以后,我一直很困惑。
感谢您提前提供帮助,请解释一下。
框架:
public class CourseGUI extends JFrame {
public CourseGUI()
{
super("CourseGUI Frame");
JPanel topPanel = new JPanel();
topPanel.setBackground(java.awt.Color.WHITE);
Dimension d = new Dimension(800,600);
topPanel.setPreferredSize(d);
this.setLayout(new BorderLayout());
this.add(topPanel, BorderLayout.NORTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800,600);
//JPanel tp = new TopPanel();
//this.add(tp.BorderLayout.North);
JPanel panel = new TopPanel();
this.setVisible(true);
}
public static void main(String[] args)
{
new CourseGUI();
}
}
面板(假设在顶部)
import javax.swing.*;
import java.awt.*;
public class TopPanel extends JPanel {
public TopPanel() {
JPanel panel = new JPanel();
JLabel Crse = new JLabel("Course Info");
Crse.setFont(new Font("Serif", Font.PLAIN, 14));
panel.add(Crse);
}
}
【问题讨论】:
-
您的代码中有两个面板,但您只将第一个添加到框架中;您必须添加实际具有标签的第二个面板;将其添加到框架中,例如: this.add(panel, BorderLayout.SOUTH);
-
这里,代码不应该扩展框架或面板,而只是使用每个的实例。请了解类、方法和属性名称的常见 Java naming conventions(特别是名称的大小写)并始终如一地使用它们。