我想用MVC在我的JPanel上生成图像。我对Java没有太多的经验,所以我遇到了一些问题。
我检查了一些有关它的问题,最像我看到有人建议使用JLabel ImageIcon。因此,我尝试进行设置,但不起作用。
查看:
public class View extends javax.swing.JFrame {
public View() {
initComponents();
}
public void addActionListener(ActionListener listener)
{
this.jButton1.addActionListener(listener);
}
public void drawImage(BufferedImage image)
{
JLabel label = new JLabel(new ImageIcon(image));
this.jPanel1.add(label);
this.add(jPanel1);
this.pack();
}
控制器:
public class Controller {
View view = new View();
public Controller(View view)
{
this.view = view;
view.addActionListener(new ButtonListener());
}
class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
BufferedImage image = null;
try {
image = ImageIO.read(new File(getClass().getClassLoader().getResource("noimg.png").getFile()));
} catch (IOException ex) {
ex.printStackTrace();
}
view.drawImage(image);
}
}
}
主要:
public class Main {
public static void main(String[] args) {
View view = new View();
Controller controller = new Controller(view);
view.setVisible(true);
}
当我按下按钮时,什么也没发生。当我按下按钮时,我想看到该图像出现在我的JPanel上。
答案 0 :(得分:0)
我只需要设置标签的大小即可。
这是固定代码:
public void drawImage(BufferedImage image)
{
JLabel label = new JLabel(new ImageIcon(image));
label.setLocation(1, 1);
label.setSize(50, 130);
this.jPanel1.add(label);
this.jPanel1.validate();
this.jPanel1.repaint();
}