如何在 Java 应用程序的底部创建一个栏,比如一个状态栏?

2022-08-31 17:28:36

我正在创建一个Java应用程序,并希望在应用程序的底部有一个栏,在其中显示一个文本栏和一个状态(进度)栏。

只有我似乎无法在 NetBeans 中找到控件,也不知道要手动创建的代码。


答案 1

使用 BorderLayout 创建一个 JFrame 或 JPanel,给它一个类似于 BevelBorder 或线条边框的东西,这样它就与其余内容分开,然后在 BorderLayout.SOUTH 上添加状态面板。

JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setSize(200, 200);

// create the status bar panel and shove it down the bottom of the frame
JPanel statusPanel = new JPanel();
statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
frame.add(statusPanel, BorderLayout.SOUTH);
statusPanel.setPreferredSize(new Dimension(frame.getWidth(), 16));
statusPanel.setLayout(new BoxLayout(statusPanel, BoxLayout.X_AXIS));
JLabel statusLabel = new JLabel("status");
statusLabel.setHorizontalAlignment(SwingConstants.LEFT);
statusPanel.add(statusLabel);

frame.setVisible(true);

这是我的机器上上述状态条形码的结果:

enter image description here


答案 2

不幸的是,Swing 没有对 StatusBars 的原生支持。您可以使用和标签或您需要在底部显示的任何内容:BorderLayout

public class StatusBar extends JLabel {

    /** Creates a new instance of StatusBar */
    public StatusBar() {
        super();
        super.setPreferredSize(new Dimension(100, 16));
        setMessage("Ready");
    }

    public void setMessage(String message) {
        setText(" "+message);        
    }        
}

然后在主面板中:

statusBar = new StatusBar();
getContentPane().add(statusBar, java.awt.BorderLayout.SOUTH);

寄件人: http://www.java-tips.org/java-se-tips/javax.swing/creating-a-status-bar.html


推荐