Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有JMenuBar、JScrollPane和Windows外观的Java Swing bug_Java_Swing_User Interface - Fatal编程技术网

带有JMenuBar、JScrollPane和Windows外观的Java Swing bug

带有JMenuBar、JScrollPane和Windows外观的Java Swing bug,java,swing,user-interface,Java,Swing,User Interface,我的问题是,当我使用Windows Feel和Look将一个JScrollPane添加到一个空的JPanel(JPanel通过JMenuBar连接到JFrame)时,会发生以下情况: JScrollPane不涵盖整个JPanel: 跨平台的感觉和外观不会出现这种情况: 具有跨平台触感和外观,涵盖所有: 这是我的代码: import javax.swing.*; import java.awt.*; public class Test { public static void mai

我的问题是,当我使用Windows Feel和Look将一个JScrollPane添加到一个空的JPanel(JPanel通过JMenuBar连接到JFrame)时,会发生以下情况:

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);
        });
    }
}

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

您可以使用空边框作为:

scrollPane.setBorder(BorderFactory.createEmptyBorder());


使用Windows Feel and Look-您发布的代码没有设置Windows LAF。对不起,我复制时没有it@camickr修好了,谢谢你们告诉我谢谢你们,我不知道那个方法。