带有jmenubar、jscrollpane和windows外观的java swing bug

doinxwow  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(329)

我的问题是,当我将一个jscrollpane添加到一个空的jpanel(用jmenubar连接到jframe的jpanel)中时,会出现以下情况:
jscrollpane并不涵盖整个jpanel:

跨平台的感觉和外观不会出现这种情况:
具有跨平台触感和外观,涵盖所有:

这是我的密码:

import javax.swing.*;
import java.awt.*;

public class Test {
    public static void main(String[] args) {
        try {
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
         e.printStackTrace();
        } catch (InstantiationException e) {
         e.printStackTrace();
        } catch (IllegalAccessException e) {
         e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
          e.printStackTrace();
        }

        SwingUtilities.invokeLater(() -> {
            JFrame frame = new JFrame("Test");
            frame.setSize(600, 400);

            JMenuBar menuBar = new JMenuBar();
            frame.setJMenuBar(menuBar);

            JMenu menu = new JMenu("Test");
            menuBar.add(menu);

            JPanel panel = new JPanel();
            panel.setLayout(new BorderLayout());
            frame.add(panel);

            JScrollPane scrollPane = new JScrollPane();
            panel.add(scrollPane);

            frame.setVisible(true);
        });
    }
}

有修复程序还是我的代码?

wmomyfyw

wmomyfyw1#

可以将空边框用作:

scrollPane.setBorder(BorderFactory.createEmptyBorder());

相关问题