我想在JPanel2上面加入一个图片.但是,把以上代码编译后,为什么JPanel2中仍旧没有图片呢?
解决方案 »
- 关于命令行运行java,找不到main的问题
- java怎么播放本地音乐
- List中取值
- 关于随机选择数字,最后呈现高斯分布的效果。
- 初始化块和构造函数执行顺序的问题
- 还是build.xml问题,怎么把jar文件包含到编译环境里去
- 请教面向对象和面向过程的理解,谢谢
- [Microsoft][SQLServer 2000 Driver for JDBC]Software caused connection abort: recv failed
- 如何实现 Date 变量的递增?
- 两个项目依赖同一个jar包不同版本怎么整合
- 我要学习JSP,请高手提点建议,看什么书好(最好是经典的)
- java访问数据库的问题请教
^^_here see it,fix it with paintComponents
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class AddSysFrame
extends JFrame {
ImagePanel imp = new ImagePanel();
String imageFileName = "e:/15.jpg";
ImageIcon m_icon = new ImageIcon(imageFileName);
JLabel jLabelImage = new JLabel(); public AddSysFrame() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
} void jbInit() throws Exception {
setSize(460, 380);
this.addWindowListener(new AddSysFrame_this_windowAdapter(this));
this.getContentPane().setLayout(null);
imp.setBounds(new Rectangle(58, 49, 274, 165));
//jLabelImage.setText("jLabel1");
jLabelImage.setIcon(m_icon);
jLabelImage.setBounds(new Rectangle(61, 218, 269, 109));
this.getContentPane().add(imp, null);
this.getContentPane().add(jLabelImage, null);
} public static void main(String[] args) {
AddSysFrame addSysFrame = new AddSysFrame();
addSysFrame.show();
} void this_windowClosing(WindowEvent e) {
System.exit(0);
}
}class AddSysFrame_this_windowAdapter
extends java.awt.event.WindowAdapter {
AddSysFrame adaptee; AddSysFrame_this_windowAdapter(AddSysFrame adaptee) {
this.adaptee = adaptee;
} public void windowClosing(WindowEvent e) {
adaptee.this_windowClosing(e);
}
}
import java.awt.*;
import javax.swing.JPanel;
import javax.swing.*;
import java.awt.image.BufferedImage;public class ImagePanel
extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
String imageFileName = "e:/15.jpg";
ImageIcon m_icon = new ImageIcon(imageFileName); Image m_image = m_icon.getImage(); public ImagePanel() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
} void jbInit() throws Exception {
this.setLayout(borderLayout1);
this.paintComponent(null);
} public void paintComponent(Graphics g) {
if (g == null) {
return;
}
super.paintComponent(g);
if (m_image == null) {
return;
}
g.drawImage(m_image, 0, 0, m_icon.getIconWidth(), m_icon.getIconHeight(), null);
}
}