Java 我想添加一个状态栏,它应该显示在显示器屏幕的底部,随着显示器大小的变化而变化

Java 我想添加一个状态栏,它应该显示在显示器屏幕的底部,随着显示器大小的变化而变化,java,windows,jframe,statusbar,netbeans-7.4,Java,Windows,Jframe,Statusbar,Netbeans 7.4,我的问题可能很简单,但它让我陷入困境。 我正在windows 8 pc上开发一个使用netbeans7.4和java的软件,我有一个全屏幕显示的主窗体,只显示菜单栏(在顶部)和标签(用于背景图像)。 我使用了下面的代码,使其成为用户的屏幕大小 this.setExtendedState(Main_Form.MAXIMIZED_BOTH); 现在我想添加一个状态栏,它应该出现在窗口的底部,并且每次在不同大小的监视器上运行时都应该标识屏幕底部的位置。您可以使元素的宽度等于客户端监视器的宽度 使用命

我的问题可能很简单,但它让我陷入困境。 我正在windows 8 pc上开发一个使用netbeans7.4和java的软件,我有一个全屏幕显示的主窗体,只显示菜单栏(在顶部)和标签(用于背景图像)。 我使用了下面的代码,使其成为用户的屏幕大小

this.setExtendedState(Main_Form.MAXIMIZED_BOTH);

现在我想添加一个状态栏,它应该出现在窗口的底部,并且每次在不同大小的监视器上运行时都应该标识屏幕底部的位置。

您可以使元素的宽度等于客户端监视器的宽度 使用命令:
yourelement.Width=ClientRectangle.Width

使用
边界布局
,将组件添加到
南部
位置,该位置将自动调整水平大小。将标签保持在
中间位置

查看更多详细信息

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;

public class StatusBarExample {

    public static void main(String[] args) {
        new StatusBarExample();
    }

    public StatusBarExample() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException ex) {
                } catch (InstantiationException ex) {
                } catch (IllegalAccessException ex) {
                } catch (UnsupportedLookAndFeelException ex) {
                }

                JPanel statusBar = new JPanel(new FlowLayout(FlowLayout.LEFT));
                statusBar.setBorder(
                                new CompoundBorder(
                                                new LineBorder(Color.DARK_GRAY),
                                                new EmptyBorder(4, 4, 4, 4)));
                final JLabel status = new JLabel();
                statusBar.add(status);

                JLabel content = new JLabel("Content in the middle");
                content.setHorizontalAlignment(JLabel.CENTER);

                final JFrame frame = new JFrame("Test");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(content);
                frame.add(statusBar, BorderLayout.SOUTH);

                frame.addComponentListener(new ComponentAdapter() {

                    @Override
                    public void componentResized(ComponentEvent e) {
                        status.setText(frame.getWidth() + "x" + frame.getHeight());
                    }

                });

                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

}


使用边界布局,将组件添加到南部位置,这将自动调整水平大小。把标签放在中间位置。你能提供代码吗@Maddy不工作或者我做错了什么。