ImageIcon实现了Icon接口,里头有一个公众方法叫getImage可以返回一个Image实例。
graphic在draw的方法中提供了对Image的操作方法,但是对于java控件(这里是JPanel和ImageIcon),api文档说明里头不鼓励直接调用paint,而是使用repaint来迫使控件重画。
在JPanel上直接可以add一个ImageIcon然后显示图片,有没有必要用graphic类再进行一次自己paint?可否进一步说明动机?
graphic在draw的方法中提供了对Image的操作方法,但是对于java控件(这里是JPanel和ImageIcon),api文档说明里头不鼓励直接调用paint,而是使用repaint来迫使控件重画。
在JPanel上直接可以add一个ImageIcon然后显示图片,有没有必要用graphic类再进行一次自己paint?可否进一步说明动机?
解决方案 »
- static 类是如何分配内存的?
- Java没有引用传递,仲么办?
- Java构造函数调用问题,求详解
- 编写一个类,包括一个字符串变量,在定义处将期初始化.另一个字符串变量由构建器初始化.说明这两种方法的区别?
- 一个很紧急的问题,也许做过的觉得很容易
- 新手求教,有关数组排序的问题???
- 从书上抄来的一个例子,很简单,但就是调不通,各位帮忙看看
- JTextArea 怎么没有textChanged事件?怎样实现这个事件?(一定有分)
- 在java中的通配符是什末?(在线等待,谢谢)
- 初学java,求大神解答
- 网络服务的问题???服务器程序不能正常运行。很奇怪的。。。
- 我作了一个带JTree的Applet,但是有的服务器无法访问,向大家请教。
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
class MyFrame extends JFrame{
private JButton jButton1 = new JButton();
public void paint(Graphics g){
super.paint(g);
ImageIcon icon = new ImageIcon("E:/ITPClient/ITPClient/image/dljm.jpg");
g.drawImage(icon.getImage(),0,0,getWidth(),getHeight(),this);
}
public static void main(String[] args){
MyFrame f = new MyFrame();
f.setSize(200,200); f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e) {System.exit(0);}
}); f.show();
f.repaint();
} public MyFrame() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
jButton1.setBounds(new Rectangle(72, 49, 108, 31));
jButton1.setText("jButton1");
this.getContentPane().setLayout(null);
this.getContentPane().add(jButton1, null);
}
}
JLabel上可以直接加上图片。