【发布时间】:2017-01-03 11:59:07
【问题描述】:
我有一个扩展JPanel 的类,我在其中重写了paintComponent(Graphics g) 方法。但是,我看不到我绘制的矩形或滚动条。
在主函数中,我有以下代码:
MyClass mainPanel = new MyClass();
mainPanel.setPreferredSize(new Dimension(1000, 1000));
mainPanel.setLayout(new BorderLayout());
JPanel scrollPanel = new JPanel();
scrollPanel.setSize(new Dimension(2000, 2000));
JScrollPane scrollPane = new JScrollPane(scrollPanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); //Let all scrollPanel has scroll bars
scrollPane.setViewportView(scrollPanel);
scrollPane.setOpaque(true);
scrollPanel.revalidate();
mainPanel.add(scrollPane);
JFrame frame = new JFrame("Scrollable Panel");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(mainPanel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
【问题讨论】:
-
试试
scrollPanel.setPreferredSize(new Dimension(2000, 2000));。目前您的scrollPanel正在缩小到零,因此scrollPane不需要显示任何滚动条。 -
@NimrodArgov,阅读他的代码,他有一个。
-
当我改变 scrollPanel.setSize(new Dimension(2000, 2000));使用 scrollPanel.setPreferredSize(new Dimension(2000, 2000));滚动条出现,但我通过图形对象绘制的矩形没有出现。
-
官方指南显示了将滚动条附加到 textArea 或图像的示例,它没有提到使 JPanel 可滚动。
标签: java jpanel scrollable