在线高分等java简单程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:56:32
程序如下:
我的想法是按一下按钮就出来一幅图片,但是没反映.(但如果在ActionListener中写System.out是可以的.)
不知道哪里出错了,想在此基础上改改,或者按这个思路能不能实现,应该怎么修改?
好了之后追加.
谢谢!
public MJpanel() {

JButton b = new JButton("显示");
add(b);

b.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e3) {
JComponent com = new JComponent() {

public void MyComponent2() {
try {
img = ImageIO.read(new File("1.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}/*这里我的想法是读图片*/

public void paintComponent(Graphics g) {
super.printComponent(g);
g.drawImage(img, 100, 100, null);
}

你的action事件的处理是错误的。
正确的处理应该是这样的

package JOptionPane;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class ShowImg extends JFrame {
JButton button1 = new JButton("显示");
JButton button2 = new JButton("清除");
JLabel imgLabel = new JLabel();

public ShowImg() {
JPanel cp = (JPanel) this.getContentPane();
JPanel buttomPanel = new JPanel();
JPanel imgPanel = new JPanel();
// buttomPanel.setPreferredSize(new Dimension(100, 40));
button2.setEnabled(false);
buttomPanel.add(button1);
buttomPanel.add(button2);
imgPanel.add(imgLabel);
button1.addActionListener(new ButtonListener());
button2.addActionListener(new ButtonListener());

cp.add(imgPanel, BorderLayout.CENTER);
cp.add(buttomPanel, BorderLayo