在全屏模式下调整框架组件的大小 [英] Resize the components of the frame in full-screen mode

查看:87
本文介绍了在全屏模式下调整框架组件的大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望无论屏幕大小如何,都可以在屏幕上始终调整框架组件.我在笔记本电脑(小屏幕)中绘制框架,当我在具有大屏幕的另一台计算机(jar文件)中运行应用程序时,框架组件不会调整大小!

I want my frame components to be always adjusted in the screen, regardless of screen size. I draw the frame in my Laptop (small screen) and when I run my application in another machine (jar file) with a big screen the frame components doesn't re-size!

当我在任何机器上将框架置于全屏模式时,如何调整框架的大小?

How I can make my frame resize it's components when I put the frame in full-screen mode in any machine?

package package_MSM;

import java.awt.Color;

public class MSMGui extends JFrame 
{
    private static final long serialVersionUID = 1L;
    private JPanel contentPane;
    private JTextArea textArea;
    private JPanel pnlLogo1;
    private JLabel lblLogo1;;
    private static JButton btnSmpd1;
    private static JButton btnSmpd2;
    private static JButton btnSmpd3;
    private static JButton btnSmpd4;
    private static JButton btnSmpd5;
    private static JButton btnSmpd6;
    private static JButton btnSmpd7;

    /**
     * Launch the application.
     */

    public static void main(String[] args) 
    {
        EventQueue.invokeLater(new Runnable() 
        {
            public void run() 
            {
                try 
                {
                    MSMGui frame = new MSMGui();
                    frame.setExtendedState(Frame.MAXIMIZED_BOTH);
                    frame.setVisible(true);

                } 
                catch (Exception e) 
                {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public MSMGui() 
    {
        setResizable(true);
        setTitle("MSM");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 841, 334);
        contentPane = new JPanel();
        contentPane.setBackground(Color.BLACK);
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JPanel panelSmpd = new JPanel();
        panelSmpd.setBounds(10, 69, 804, 105);
        panelSmpd.setBackground(Color.BLACK);
        contentPane.add(panelSmpd);
        panelSmpd.setLayout(null);

        JMenuBar menuBar = new JMenuBar();
        menuBar.setBackground(UIManager.getColor("MenuBar.background"));
        menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 12));
        setJMenuBar(menuBar);

        JMenu mnMenu = new JMenu("Menu");
        menuBar.add(mnMenu);

        JMenuItem mntmAlarmStop = new JMenuItem("Stop alarm sound");
        mntmAlarmStop.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent e) 
            {
                stopAlarm();
                textArea.append(dateTime()+ " Alarm cleared by the Operator from the Menu Bar\n");
                writeTofile(dateTime()+ " Alarm cleared by the Operator from the Menu Bar\n");
            }
        });
        mnMenu.add(mntmAlarmStop);

        JMenuItem mntmExit = new JMenuItem("Exit");
        mntmExit.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent e) 
            {
                // display the showOptionDialog
                Object[] options = { "OK", "Cancel" };
                int choice = JOptionPane.showOptionDialog(null, 
                                        "You really want to quit?", 
                                        "Quit?", 
                                        JOptionPane.YES_NO_OPTION, 
                                        JOptionPane.QUESTION_MESSAGE, 
                                        null, 
                                        options, 
                                        options[0]);

                // interpret the user's choice
                if (choice == JOptionPane.YES_OPTION)
                {
                    System.exit(0);
                }
            }
        });
        mnMenu.add(mntmExit);       

        btnSmpd1 = new JButton("SPD 1");
        btnSmpd1.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent arg0) 
            {               
                btnSmpd1.setBackground(Color.YELLOW);
                stopAlarm();
                btnSmpd1.setEnabled(false);
                textArea.append(dateTime() + " Alarm Stampede 1 cleared by the Operator\n");
                writeTofile(dateTime()  + " Alarm Stampede 1 cleared by the Operator\n");
            }
        });
        btnSmpd1.setFont(new Font("Tahoma", Font.BOLD, 15));
        btnSmpd1.setBounds(23, 13, 100, 74);
        panelSmpd.add(btnSmpd1);
        btnSmpd1.setOpaque(true);

        btnSmpd2 = new JButton("SPD 2");
        btnSmpd2.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent arg0) 
            {               
                btnSmpd2.setBackground(Color.YELLOW);
                stopAlarm();
                btnSmpd2.setEnabled(false);
                textArea.append(dateTime() + " Alarm Stampede 2 cleared by the Operator\n");
                writeTofile(dateTime()  + " Alarm Stampede 2 cleared by the Operator\n");
            }
        });
        btnSmpd2.setFont(new Font("Tahoma", Font.BOLD, 15));
        btnSmpd2.setBounds(133, 13, 100, 74);
        panelSmpd.add(btnSmpd2);
        btnSmpd2.setOpaque(true);

        btnSmpd3 = new JButton("SPD 3");
        btnSmpd3.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent arg0) 
            {
                btnSmpd3.setBackground(Color.YELLOW);
                stopAlarm();
                btnSmpd3.setEnabled(false);
                textArea.append(dateTime() + " Alarm Stampede 3 cleared by the Operator\n");
                writeTofile(dateTime()  + " Alarm Stampede 3 cleared by the Operator\n");
            }
        });
        btnSmpd3.setFont(new Font("Tahoma", Font.BOLD, 15));
        btnSmpd3.setBounds(243, 13, 100, 74);
        panelSmpd.add(btnSmpd3);
        btnSmpd3.setOpaque(true);

        btnSmpd4 = new JButton("SPD 4");
        btnSmpd4.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent arg0) 
            {
                btnSmpd4.setBackground(Color.YELLOW);
                stopAlarm();
                btnSmpd4.setEnabled(false);
                textArea.append(dateTime() + " Alarm Stampede 4 cleared by the Operator\n");
                writeTofile(dateTime()  + " Alarm Stampede 4 cleared by the Operator\n");
            }
        });
        btnSmpd4.setFont(new Font("Tahoma", Font.BOLD, 15));
        btnSmpd4.setBounds(353, 13, 100, 74);
        panelSmpd.add(btnSmpd4);
        btnSmpd4.setOpaque(true);

        btnSmpd5 = new JButton("SPD 5");
        btnSmpd5.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent arg0) 
            {               
                btnSmpd5.setBackground(Color.YELLOW);
                stopAlarm();
                btnSmpd5.setEnabled(false);
                textArea.append(dateTime() + " Alarm Stampede 5 cleared by the Operator\n");
                writeTofile(dateTime()  + " Alarm Stampede 5 cleared by the Operator\n");
            }
        });
        btnSmpd5.setFont(new Font("Tahoma", Font.BOLD, 15));
        btnSmpd5.setBounds(463, 11, 100, 76);
        panelSmpd.add(btnSmpd5);
        btnSmpd5.setOpaque(true);

        btnSmpd6 = new JButton("SPD 6");
        btnSmpd6.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent arg0) 
            {               
                btnSmpd6.setBackground(Color.YELLOW);
                stopAlarm();
                btnSmpd6.setEnabled(false);
                textArea.append(dateTime() + " Alarm Stampede 6 cleared by the Operator\n");
                writeTofile(dateTime()  + " Alarm Stampede 6 cleared by the Operator\n");
            }
        });
        btnSmpd6.setFont(new Font("Tahoma", Font.BOLD, 15));
        btnSmpd6.setBounds(573, 11, 100, 76);
        panelSmpd.add(btnSmpd6);
        btnSmpd6.setOpaque(true);

        btnSmpd7 = new JButton("SPD 7");
        btnSmpd7.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent arg0) 
            {               
                btnSmpd7.setBackground(Color.YELLOW);
                stopAlarm();
                btnSmpd7.setEnabled(false);
                textArea.append(dateTime() + " Alarm Stampede 7 cleared by the Operator\n");
                writeTofile(dateTime()  + " Alarm Stampede 7 cleared by the Operator\n");
            }
        });
        btnSmpd7.setFont(new Font("Tahoma", Font.BOLD, 15));
        btnSmpd7.setBounds(683, 11, 100, 76);
        panelSmpd.add(btnSmpd7);
        btnSmpd7.setOpaque(true);

        JLabel lblTitle = new JLabel("MNOC Stampede Monitor");
        lblTitle.setBounds(200, 11, 423, 27);
        lblTitle.setHorizontalTextPosition(SwingConstants.CENTER);
        lblTitle.setForeground(Color.GRAY);
        lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
        lblTitle.setFont(new Font("Tahoma", Font.BOLD, 32));
        contentPane.add(lblTitle);

        scrollPane = new JScrollPane();
        scrollPane.setBounds(40, 172, 754, 91);
        contentPane.add(scrollPane);

        textArea = new JTextArea();
        scrollPane.setViewportView(textArea);

        ImageIcon image = new ImageIcon("logo.jpg");

        pnlLogo1 = new JPanel();
        pnlLogo1.setBounds(50, 11, 70, 47);
        contentPane.add(pnlLogo1);
        pnlLogo1.setLayout(null);
        lblLogo1 = new JLabel();
        lblLogo1.setBounds(0, 0, 70, 47);
        pnlLogo1.add(lblLogo1);
        lblLogo1.setOpaque(true);
        lblLogo1.setVisible(true);
        lblLogo1.setIcon(image);
        pnlLogo1.setVisible(true);
    }
}

推荐答案

如果其他人也遇到相同的问题,则解决方案是使用布局而不是使用空布局.

If someone else have the same problem the solution is to use Layouts instead of using the null layout.

这篇关于在全屏模式下调整框架组件的大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆