【问题标题】:Scroll bars of scroll pane (having a textArea within it) not appearing properly in java swing GUIjava swing GUI中滚动窗格的滚动条(其中有一个textArea)没有正确显示
【发布时间】: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 添加到你的JPanelBorderLayout 在位置CENTER,这不会导致这样的问题。我希望我已经说清楚了:-) 祝你好运:-) 为JComponents 设置大小是导致许多奇怪情况的原因:-)

标签: swing scrollbar jscrollpane


【解决方案1】:

为了您的意见,

...如果是 Nibus 的外观,那么我需要更改代码的外观...

你需要这个,

UIManager.setLookAndFeel ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");  

也看看这个:How to Set the Look and Feel

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多