| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 766 人关注过本帖
标题:求教,为什么我这窗体的图片显示不出来
只看楼主 加入收藏
风铃中の鬼
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-3-2
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:3 
求教,为什么我这窗体的图片显示不出来
我想把一个路径为E:\\未命名2.JPG的图片显示到窗体上,但是为啥显示不出来呢?代码如下:


package ft;

import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import
import

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MyTest extends JFrame implements ActionListener{
    JButton jbtn = null;
    JTextField jtf = null;
    JPanel bp1 = new JPanel();
    JPanel bp2 = new JPanel();

    
    public MyTest(){
        this.setLayout(new FlowLayout());
        jbtn = new JButton("打开..");
        jbtn.addActionListener(this);
        jtf = new JTextField(30);
        
        ImageP p = new ImageP();
        bp2.add(p);
        
        bp1.add(jtf);
        bp1.add(jbtn);
        
        this.add(bp1,BorderLayout.SOUTH);
        this.add(bp2,BorderLayout.NORTH);
        
        
        this.setSize(400,400);
        this.setVisible(true);
        this.pack();
    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource().equals(jbtn)){
        
            int response = 1;
            do{
                
                 FileDialog fd = new FileDialog(this);
                 fd.setVisible(true);
        
                
                 String a = fd.getDirectory()+fd.getFile();
                 System.out.println(a);
                 this.setVisible(false);
                 Object[] options = {"是,我要继续生成新XML","否,我想退出程序"};
                response=JOptionPane.showOptionDialog(this, "XML已生成,是否继续生成新XML?", "亿阳报表自动化系统",JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
                
                
                if(response == 1)
                {
                    System.exit(0);
                }
        
            }while(response == 0);        
         
        }
    }
    public static void main(String[] args){
        
        
        
        new MyTest();
        
    }

}

class ImageP extends JPanel{
    
    JPanel bp2 = new JPanel();
    private Image image;
    
    
    public ImageP(){
        try{
            image = ImageIO.read(new File("E:\\未命名2.JPG"));
        }catch(IOException e){
            e.printStackTrace();
        }
        if(image == null){
            System.out.println("222");
        }else{
            System.out.println("333");
        }

    }
    
    public void ImageP2(Graphics g){
        super.printComponents(g);
        g.drawImage(image,0,0,null);
    }
}
搜索更多相关主题的帖子: 窗体 
2009-07-20 09:56
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
收藏
得分:20 
你没有把图片画出来呀....??

    public void ImageP2(Graphics g){
        super.printComponents(g);
        g.drawImage(image,0,0,null);
    }
你调用这个了吗?
  你可以覆盖这个方法 protected void paintComponent(Graphics g);
 突然看到   super.printComponents(g);  这个方法
protected void printComponent(Graphics g)在打印操作期间调用此方法。实现此方法以对组件调用 paintComponent。如果要在打印时添加特殊的绘制行为,可重写此方法。

不对吧

java群
62635216
欢迎加入
2009-07-21 01:41
风铃中の鬼
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-3-2
收藏
得分:0 
回复 2楼 pywepe
不好意思我不大明白。请问具体应该怎么改?
2009-07-21 10:08
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
收藏
得分:0 
回复 3楼 风铃中の鬼
在你的ImageP类中加这个方法
protected void paintComponent(Graphics g){
    super.paintComponent(g);
    g.drawImage(image,0,0,null);
}
覆盖这个方法 以达到改变外观的效果

java群
62635216
欢迎加入
2009-07-21 14:42
快速回复:求教,为什么我这窗体的图片显示不出来
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047483 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved