我试图将2 JTextPane添加到一个scrollPane中。但是它不会滚动。我究竟做错了什么?

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(402, 211, 178, 193);
frame.getContentPane().add(scrollPane);

JPanel panel = new JPanel();
scrollPane.setViewportView(panel);
panel.setLayout(null);

JTextPane textPane_branding = new JTextPane();
textPane_branding.setBounds(98, 0, 78, 191);
panel.add(textPane_branding);

JTextPane textPane_trunk = new JTextPane();
textPane_trunk.setBounds(0, 0, 88, 191);
panel.add(textPane_trunk);

最佳答案

我不太确定您要在这里实现什么。如果要使两个JTextPane都可滚动,则需要将每个JScrollPane放入其自己的JTextPane。看起来像这样:

JTextPane textPane_branding = new JTextPane();
JScrollPane scroll_branding = new JScrollPane(textPane_branding);
scroll_branding.setBounds(98, 0, 78, 191);
panel.add(scroll_branding);

JTextPane textPane_trunk = new JTextPane();
JScrollPane scroll_trunk = new JScrollPane(textPane_trunk);
scroll_trunk.setBounds(0, 0, 88, 191);
panel.add(scroll_trunk);


如果要将两个JPanel都合并到一个可以滚动的Bounds中,我想知道为什么将固定JScrollPane设置为JTextPanesJScrollPanes。这使滚动在这里变得荒谬。这就是为什么JPanel无法与没有布局且使用固定边界的窗格一起使用的原因。这也是很糟糕的做法。
因此,我建议在这里使用setPreferredSize中的布局管理器,并在JTextPanes中使用JScrollPane来定义所需的尺寸。然后您的将开始工作。

JScrollPane scrollPane = new JScrollPane();
//scrollPane.setBounds(402, 211, 178, 193);  // Don't do this!
frame.getContentPane().add(scrollPane);

JPanel panel = new JPanel();
scrollPane.setViewportView(panel);
//panel.setLayout(null);                     // Use a Layout Manager

JTextPane textPane_branding = new JTextPane();
textPane_branding.setPreferredSize(new Dimension(78,191));
//textPane_branding.setBounds(98, 0, 78, 191);
panel.add(textPane_branding);

JTextPane textPane_trunk = new JTextPane();
textPane_trunk.setPreferredSize(new Dimension(88,191));
//textPane_trunk.setBounds(0, 0, 88, 191);
panel.add(textPane_trunk);

关于java - 将2个JTextPane添加到一个scrollPane中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35038130/

10-08 20:28