带有JMenuBar、JScrollPane和Windows外观的Java Swing bug
我的问题是,当我使用Windows Feel和Look将一个JScrollPane添加到一个空的JPanel(JPanel通过JMenuBar连接到JFrame)时,会发生以下情况: JScrollPane不涵盖整个JPanel: 跨平台的感觉和外观不会出现这种情况: 具有跨平台触感和外观,涵盖所有: 这是我的代码:带有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
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修好了,谢谢你们告诉我谢谢你们,我不知道那个方法。