使用相同高度的两个面板显示不同

时间:2015-12-15 16:15:37

标签: java macos swing jframe jpanel

我尝试使用Java制作全屏GUIJFrame上有2 JPanel个,其中一个只需要大约0.10的屏幕宽度。当我将这些面板放在框架上时,使用相同的高度,它们在Linux和Linux上显示出不同的高度。 Mac OS但它们在Windows上看起来没问题。有没有人知道如何使两个面板的高度与Linux和Linux相同;苹果系统?我使用WindowBuilder快速重新解决了这个问题。

package View;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GraphicsDevice;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import controller.ExitActionListener;
import java.awt.event.ActionListener;

public class TestFrame2 {

    private JFrame frame;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    TestFrame2 window = new TestFrame2();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public TestFrame2() {
        initialize();
    }

    private void initialize() {
        frame = new JFrame();
        GraphicsDevice device = frame.getGraphicsConfiguration().getDevice();
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setUndecorated(true);
        frame.setVisible(true);

        JPanel panel = new JPanel();
        panel.setSize((int)(frame.getWidth()*0.1), frame.getHeight());
        panel.setBackground(Color.BLACK);
        frame.getContentPane().add(panel);

        JPanel panel1 = new JPanel();
        panel1.setBackground(Color.RED);
        panel1.setSize(frame.getWidth(), frame.getHeight());
        frame.getContentPane().add(panel1);

        // temporary close button
        ActionListener exitActionListener = new ExitActionListener();
        JButton exit = new JButton("Exit System");
        exit.setBounds(150 ,200, 150, 100);
        exit.addActionListener(exitActionListener);
        panel1.add(exit);

        //Set program as full screen
        device.setFullScreenWindow(frame);
    }
}

0 个答案:

没有答案