【问题标题】:How can I make my JPanels/JFrames actually show up?我怎样才能让我的 JPanels/JFrames 真正出现?
【发布时间】:2017-04-28 00:35:48
【问题描述】:

我有一个小部件,旨在编译有关每个“盘子”的不同信息,并且每条信息都存储在 JLabel 中。我已将所有 JLabel 放入 JPanel(每个盘子一个 JPanel),然后将 JPanel 放入 JFrame,因为这似乎是互联网上让 JPanel 真正出现的最佳方式的共识。当我在另一个类中构造小部件时,我创建了一个小部件数组(每个板一个小部件),所以目标是让这个小部件数组(实际上只是一个 JFrame,其中包含一个 JPanel,其中包含多个 JLabel)出现.我不确定我哪里出错了,因为我正在使用 setVisible() 并且我正在使用 add(Component) 方法。任何意见都非常感谢!

public class BeltView extends JPanel implements BeltObserver {

    private Belt belt;
    private BeltViewWidget[] _widgets;

    public BeltView(Belt b) {
        this.belt = b;
        belt.registerBeltObserver(this);
        setLayout(new GridLayout(belt.getSize(), 1));
        _widgets = new BeltViewWidget[belt.getSize()];
        for (int i = 0; i < belt.getSize(); i++) {
            if (belt != null && belt.getPlateAtPosition(i) != null) {
                BeltViewWidget widget = new BeltViewWidget(belt, i);
                _widgets[i] = widget;
            }
        }
        for (int j = 0; j < _widgets.length; j++) {
            if (_widgets[j] != null) {
                add(_widgets[j]);
                _widgets[j].setVisible(true);
            }
        }
    }

小部件构造函数(来自小部件类):

public BeltViewWidget(Belt belt, int position) {
    JPanel _widget_panel = new JPanel();
    JFrame _frame = new JFrame();
    _belt = belt;
    _position = position;
    Plate p = _belt.getPlateAtPosition(_position);
    _widget_panel.setVisible(true);
    _widget_panel.setLayout(new GridLayout());
    refresh();
}

【问题讨论】:

标签: java swing jframe jpanel jlabel


【解决方案1】:

你可以这样做:

public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame();
frame.setTitle("My First Swing Application");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Welcome");
frame.add(label);
frame.pack();
frame.setVisible(true);

}

我不认为您将 _frame 设置为可见。

【讨论】:

猜你喜欢
  • 2014-08-14
  • 1970-01-01
  • 2013-10-09
  • 2012-04-29
  • 2017-07-21
  • 2013-08-25
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多