如何在Java应用程序的底部创build一个条形,如状态栏?

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

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

使用BorderLayout创build一个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); 

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

在这里输入图像说明

不幸的是,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

我使用了L2FProd的 swing库。 他们提供的状态栏库非常好。

以下是你将如何使用它:

  1. 下载他们提供的JAR并将其放入你的类path中
  2. 状态栏在内部将栏区域分为区域。 每个区域可以包含一个组件(JLabel,JButton等)。 想法是用所需的区域和组件填满栏。

  3. 实例化状态栏如下….

     import java.awt.Component; import javax.swing.BorderFactory; import javax.swing.JLabel; import com.l2fprod.common.swing.StatusBar; StatusBar statusBar = new StatusBar(); statusBar.setZoneBorder(BorderFactory.createLineBorder(Color.GRAY)); statusBar.setZones( new String[] { "first_zone", "second_zone", "remaining_zones" }, new Component[] { new JLabel("first"), new JLabel("second"), new JLabel("remaining") }, new String[] {"25%", "25%", "*"} ); 
  4. 现在将上面的statusBar添加到你有的主面板(BorderLayout并将其设置在南侧)。

从我在这里工作的应用程序中看到一个示例截图(它有2个区域)。 让我知道如果你面临任何问题….

我会推荐在SwingX库中的状态栏组件 – 这里是状态栏的API文档在这里

这是一个很好的例子。

玩的开心。