我对Java有点新意。
我正在尝试在我的Swing应用中添加页脚JPanel。我是通过在一个单独的类中使用页脚的JPanel来实现这一点的。
这是我的FooterBar类,其中包含JPanel属性:
public class FooterBar extends JPanel {
private JPanel footerPanel = new JPanel();
private JLabel label;
public FooterBar() {
// Footer test
footerPanel.setPreferredSize(new Dimension(640, 16));
footerPanel.setLayout(new BoxLayout(footerPanel, BoxLayout.X_AXIS));
footerPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
JLabel label;
label = new JLabel("test");
label.setHorizontalAlignment(SwingConstants.LEFT);
footerPanel.add(label);
label = new JLabel("test 2");
label.setHorizontalAlignment(SwingConstants.CENTER);
footerPanel.add(label);
}
}
这就是我在主课堂上所拥有的。 (称为MainFrame)
public class MainFrame extends JFrame {
private TextPanel textPanel = new TextPanel();
private Toolbar toolbar = new Toolbar();
private FormPanel formPanel = new FormPanel();
private FooterBar footerPanel = new FooterBar();
private static String windowTitle = "WIN7 USB3 Installer";
/**
* The properties for the window itself
*/
public MainFrame() {
super(windowTitle);
setLayout(new BorderLayout());
add(formPanel, BorderLayout.WEST);
add(textPanel, BorderLayout.CENTER);
add(footerPanel, BorderLayout.SOUTH);
}
}
如果我在主类中拥有所有JPanel属性,它就能完美运行。但它并没有向JPanel展示2个不同的类别 虽然其他组件确实向上移动了一些,但它们不会与JPanel冲突。所以我猜它只是没有初始化实际的JPanel。那是为什么?
答案 0 :(得分:2)
您的FooterBar
已经是JPanel
,创建另一个JPanel
并向其中添加内容是没有用的,所以只需直接使用您的FooterBar
面板:
public class FooterBar extends JPanel {
private JLabel label;
public FooterBar() {
// Footer test
setPreferredSize(new Dimension(getWidth(), 16));
setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
setBorder(new BevelBorder(BevelBorder.LOWERED));
JLabel label;
label = new JLabel("test");
label.setHorizontalAlignment(SwingConstants.LEFT);
add(label);
label = new JLabel("test 2");
label.setHorizontalAlignment(SwingConstants.CENTER);
add(label);
}
}