我正在尝试学习一些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);
}
}
从页面中您可以看到预期的结果。
但是,只需复制并粘贴该代码,我会在下面的图片中得到结果。我试图了解示例是否已过期或示例图像是否错误(教程图像上的红色边框在哪里?)。此外,我的滚动条没有启用,而我期待它们是。我错过了什么来启用它们(在教程中他们没问题)?我正在使用JDK7。
答案 0 :(得分:3)
可以看到红色边框,它是由这一行引起的:
jScrollPane.setViewportBorder(new LineBorder(Color.RED));
作为背景信息,您应该知道在Swing中设置彩色线条边框是一个有用的调试可能性(否则通常很难看到一个组件结束而另一个组件开始的位置),所以这里作者可能想要在截取屏幕截图后调试某些内容,并忘记从代码中删除此行。
顺便说一句,如果你想学习Swing,最好的在线资源是“官方”资源:http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html 编辑:滚动条已启用,它们不像是“灰色”,如果单击箭头,则会发生视觉上的变化。没有可滚动的内容,因为按钮的大小始终调整为可见区域的大小。正如我所说,这不是一个好例子,不要从这里学习......答案 1 :(得分:1)
代码正常,边框为红色
jScrollPane.setViewportBorder(new LineBorder(Color.RED));
并且链接中的图像是错误的图像