2013-05-01 55 views
-1

我的工作对管理图像的过滤器等的Java的JPanel和JScrollPane的

我想有滚动条,当图片太大是显示器中的应用。 我把我的自定义面板,扩展JPanelJScrollPane,我把它添加到我的JFrame

我的图像显示,但不是整个图像和滚动条不在那里。

如何让滚动条出现?

这里是我的代码:

CustomePanel test = new ImagePanel(new File("test.jpg")); 
test.setPreferredSize(new Dimension(400, 400)); 
JScrollPane tmp = new JScrollPane(test); 
this.getContentPane().add(tmp); 
+0

['ImageViewer'](http://stackoverflow.com/a/13463684/418556)是工作示例。如果您无法根据该代码对其进行整理,请发布最佳尝试的[SSCCE](http://sscce.org/)。 – 2013-05-01 15:50:00

+1

*“我将它添加到我的框架中”* DYM是一个'java.awt.Frame'还是一个'javax.swing.JFrame'?不要在没有充分理由的情况下混用Swing和AWT组件。顺便说一句 - 我添加了*“如何让滚动条出现?”*的问题,因为它缺乏一个(这是一个问题)。如果这不是你的问题,请问你自己的问题。 – 2013-05-01 15:52:43

+0

我的不好,确实是JFrame。 – Lenjyco 2013-05-01 15:57:38

回答

2

很可能你最初的首选大小不匹配,你Image的。而不是使用setPreferredSize,重写getPreferredSize以反映图像的大小在ImagePanel

@Override 
public Dimension getPreferredSize() { 
    return new Dimension(image.getWidth(this), image.getHeight(this)); 
} 

JLabel将这里是一个更好的方法,如果该面板不要求作为容器。

+0

这很有用,非常感谢。我可以问你一些事情吗 ?我在左边拿到我的滚动条,我想在底部有第二个,我该怎么做? – Lenjyco 2013-05-01 16:08:57

+0

我真的没有看到使用面板的优点,即标签更适合。 – 2013-05-01 16:09:14

+0

再次感谢。我使用的是面板,因为它对我的工作是强制性的^^' – Lenjyco 2013-05-01 16:15:02

0

尝试设置相同的优选尺寸滚动窗格以及并测试它