【发布时间】:2012-05-09 12:04:05
【问题描述】:
我创建了一个具有以下顺序的 Swing Frame,JFrame > JPanel > JScrollPane > JTextArea。 我正在使用卡片布局将 JPanel 加载到 JFrame 中。
我的问题是滚动条没有正确显示(如图所示)。
我的代码如下:
jTextArea1 = new javax.swing.JTextArea();
jScrollPane1 = new javax.swing.JScrollPane(jTextArea1);
jTextArea1.setColumns(15);
jTextArea1.setEditable(false);
jTextArea1.setFont(new java.awt.Font("SansSerif", 0, 12)); // NOI18N
jTextArea1.setRows(3);
JScrollBar verticalScrollBar = jScrollPane1.getVerticalScrollBar();
verticalScrollBar.setValue(0);
jTextArea1.setCaretPosition(0);
jScrollPane1.setPreferredSize(new java.awt.Dimension(632, 425));
//Group Layout
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
jPanelBottomPanel,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(
jLabelImageLogoSAGUpgradeUtility,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanelStartInstaller,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap()
)
.addGroup(
layout.createSequentialGroup()
.addGap(10, 10,
10)
.addComponent(
jCheckBox1)
.addGap(0,
0,
Short.MAX_VALUE))
.addGroup(
javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addContainerGap()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING,
false)
.addGroup(
layout.createSequentialGroup()
.addGap(0,
0,
0)
.addComponent(
jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
0,
Short.MAX_VALUE))
.addGap(5)
.addComponent(
jPanel5,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
layout.setVerticalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jLabelImageLogoSAGUpgradeUtility,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(8, 8, 8)
.addComponent(jPanel5,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 0, Short.MAX_VALUE)
.addComponent(jPanelStartInstaller,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jCheckBox1)
.addComponent(jPanelBottomPanel,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
));
【问题讨论】:
-
仅供参考:当单击按钮时打开 JFileChooser 时,JFileChooser 内的滚动条也没有正确显示...
-
我看不出这些滚动条有什么问题。这只是 Nimbus 外观和感觉滚动条(参见例如 this blog post with Nimbus images)
-
感谢 Robin,如果是 Nibus 的外观和感觉,那么我需要更改代码的外观和感觉......非常感谢,我为这个愚蠢的东西尝试了很多选项 :)。 ..
-
就我而言,即使使用 Nimbus,一切都太好了,正如预期的那样。对我来说,我可以在您的代码部分看到一个很大的缺陷,即这一行
jScrollPane1.setPreferredSize(new java.awt.Dimension(632, 425));。这条线可能会造成麻烦,虽然不知道你为什么想要这个,但你可以将你的JScrollPane添加到你的JPanel和BorderLayout在位置CENTER,这不会导致这样的问题。我希望我已经说清楚了:-) 祝你好运:-) 为JComponents 设置大小是导致许多奇怪情况的原因:-)
标签: swing scrollbar jscrollpane