我的问题显示我是JAVA的新成员;)
我尝试将JPanel
添加到JScrollPane
但是当我添加大于JPanel
的组件时,JScrollPane
无效。
我可以通过将JScrollPane设置为小于JPanel
来修复它,但这不是一个正确的解决方案(我想稍后动态地向JPannel
添加组件)。
scroll2.setPreferredSize(new Dimension(500,500));
什么是解决方案?谢谢
public class Main扩展JFrame {
private JPanel finalPan2;
JScrollPane scroll2;
public Main() throws HeadlessException {
super("V4.0.3");
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
setSize(520, 540);
setLocation(0, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setResizable(false);
setVisible(true);
finalPan2 = new JPanel(new FlowLayout(FlowLayout.CENTER));
finalPan2.setPreferredSize(new Dimension(620, 540));
JButton bb = new JButton("Big Button");
bb.setPreferredSize(new Dimension(50, 800));
finalPan2.add(bb);
scroll2 = new JScrollPane(finalPan2);
scroll2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroll2.setPreferredSize(new Dimension(500, 500));
add(scroll2, BorderLayout.CENTER);
setLocationRelativeTo(null);
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
// @Override
public void run() {
Main ba = new Main();
}
});
}
}
答案 0 :(得分:0)
ScrollPane
有JPanel
,但JPanel
不会改变大小以适应JButton
的大小,因为您设置了finalPan2.setPreferredSize(new Dimension(620, 540));
首选尺寸。如果您取出{{1}},面板应调整大小以适应按钮,滚动窗格应该有效。