java - 为什么我的 JScrollPane 与示例不同?

标签 java swing jscrollpane

我正在尝试学习一些 Swing,并且正在尝试 14.46.2.Add component to JScrollPane例子。代码是这样的:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension; 
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.border.LineBorder;

public class AddingToJScrollPane {

public static void main(String args[]) {
  JFrame frame = new JFrame("Tabbed Pane Sample");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  JLabel label = new JLabel("Label");
  label.setPreferredSize(new Dimension(1000, 1000));
  JScrollPane jScrollPane = new JScrollPane(label);

  JButton jButton1 = new JButton();

  jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  jScrollPane.setViewportBorder(new LineBorder(Color.RED));
  jScrollPane.getViewport().add(jButton1, null);

  frame.add(jScrollPane, BorderLayout.CENTER);
  frame.setSize(400, 150);
  frame.setVisible(true);
 }
}

从页面中您可以看到预期的结果。

enter image description here

但是,只需复制并粘贴该代码,我就得到下图中的结果。我试图了解该示例是否已过时或示例图像是否错误(教程图像上的红色边框在哪里?)。此外,我的滚动条未启用,而我希望它们启用。我是否缺少一些东西来启用它们(在教程中它们没问题)?我使用的是 JDK7。

enter image description here

最佳答案

可以看到红色边框,这是由这一行引起的:

jScrollPane.setViewportBorder(new LineBorder(Color.RED));

作为背景信息,您应该意识到,在 Swing 中为组件设置彩色线条边框是一种有用的调试可能性(否则通常很难看出一个组件在哪里结束而另一个组件在哪里开始),所以这里作者可能想要截取屏幕截图后调试某些内容,却忘记从代码中删除此行。

顺便说一句,如果您想学习 Swing,最好的在线资源是“官方”资源:http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html

编辑:滚动条已启用,它们不像“灰色”,如果您单击箭头,则会出现视觉变化。没有什么可以滚动,因为按钮的大小总是调整为可见区域的大小。正如我所说,这不是一个很好的例子,不要从这里学习......

关于java - 为什么我的 JScrollPane 与示例不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14186859/

相关文章:

java - 将输入流转换为文件对象

java - Java中有双向链表实现吗?

java - 无法在java中的jscrollPane中将组件添加到jpanel

java - JTree 不显示在 JScrollPane 内

java - Http 获取响应 utf-8

java - 垂直 View 中的可拖动组件 (Java Swing)

java - 滚动条和表格列不可见

java - GUI 测试 Java Swing 应用程序

Java Swing : JScrollPane not working

java - Spring JUnit 和 Mockito - SimpleJdbcTemplate