没有用Canvas,因为不知道你所说的滑动条,具体是指什么。是不是JScrollPane的横纵滚动条。
JScrollPane + JPanel
可以实现,下边是代码。
--------------------------------------------------------------------------------
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class LineAppFrame extends JFrame {
public LineAppFrame() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(550, 550);
setLocationRelativeTo(null);
JScrollPane scrollPane = new JScrollPane();
MyCanvas panel = new MyCanvas();
panel.setPreferredSize(new Dimension(panel.width, panel.height));
scrollPane.setViewportView(panel);
getContentPane().add(scrollPane, BorderLayout.CENTER);
setVisible(true);
}
public static void main(String[] args) {
new LineAppFrame();
}
}
class MyCanvas extends JPanel {
int width = 0;
int height = 0;
private ImageIcon icon;
public MyCanvas() {
icon = new ImageIcon("D:\\2.jpg");
width = icon.getIconWidth();
height = icon.getIconHeight();
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(icon.getImage(), 0, 0, null);
}
}
追问:
Canvas Canvas= new Canvas(shell,SWT.H_SCROLL | SWT.V_SCROLL);
我做的是SWT/JACE的应用,原本想的时候Canvas控件有滚动条的属性,如上设置属性后就可以用滑动条显示了,结果不行。
追答:
你的这个Canvas是
import java.awt.Canvas;这个吗?
我怎么没有你给出的构造方法?
追问:
import org.eclipse.swt.widgets.Canvas;
我用的是SWT
追答:
哦,在eclispe里找到了,但我用得不熟,试一下
有结果再告诉你。
追问:
嗯啊 谢谢啊
我在网上查了例子,照着他那个做了一下,但是只是实现了滚动效果。往下滚的时候,本来应该是没显示的显示出来,结果却是上边显示的也刷没了,下边滚上来的也是白的。
追答:
我用
import java.awt.Canvas
实现也是这个问题。
追问:
那肿么办啊 求指导 ~~~~(>_<)~~~~ 第一次用JAVA就这么悲剧了
追答:
你换成JPanel不可以吗?
追问:
求详解,就是想显示一个无限大的图片,然后通过滚动条来显示,该肿么办。
追答:
你看我上面的代码不行吗?
--------------------------------------------------------------------------------------------
SWT我用的不是很熟。但我觉得你换一个控件不行以吗?
一个要用canvas?
评论 |