Image 和 JButton 不会同时出现

问题描述

我开始开发 Java 已经很久了。

代码由 Eclipse 运行。当我运行这段代码 javaSE-1.8 时,只出现 mimage,当我删除并运行 'paintComponenets(g);' 时,退出按钮和开始按钮出现,而 mimage 消失。我认为“paintComponents”是问题所在。我该如何解决这个问题

    public class Mainscreen extends JFrame {
    private Image screenImage;
    private Graphics screenGraphics;
    private Image mImage = new 
ImageIcon(Main.class.getResource("../img/unnamed.jpg")).getimage();
    private ImageIcon quitEnter = new 
ImageIcon(Main.class.getResource("../img/startButtonBasic1.jpg"));
    private ImageIcon quitBasic = new 
ImageIcon(Main.class.getResource("../img/startButtonEntered1.jpg"));
    private ImageIcon startEnter = new 
ImageIcon(Main.class.getResource("../img/startButtonBasic.jpg"));
    private ImageIcon startBasic = new 
ImageIcon(Main.class.getResource("../img/startButtonEntered.jpg"));

private JButton quitButton = new JButton(quitBasic);
private JButton startButton = new JButton(startBasic);


public Mainscreen() {
        
    setTitle("Main");
    setSize(900,900);
    setResizable(false);
    setLocationRelativeto(null);
    setLayout(null);
    setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    
    startButton.setBounds(40,200,400,100);
    startButton.setBorderPainted(false);
    startButton.setContentAreaFilled(false);
    startButton.setFocusPainted(false);
    
    startButton.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseEntered(MouseEvent e) {
            startButton.setIcon(startEnter);
            startButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
            
        }
        public void mouseExited(MouseEvent e) {
            startButton.setIcon(startBasic);
            startButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
            
        }
        public void mousepressed(MouseEvent e) {
            //select
        }
    });
    add(startButton);
    
    quitButton.setBounds(40,500,100);
    quitButton.setBorderPainted(false);
    quitButton.setContentAreaFilled(false);
    quitButton.setFocusPainted(false);
    quitButton.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseEntered(MouseEvent e) {
            quitButton.setIcon(quitEnter);
            quitButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
            
        }
        public void mouseExited(MouseEvent e) {
            quitButton.setIcon(quitBasic);
            quitButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
            
        }
        public void mousepressed(MouseEvent e) {
            
            try {
                Thread.sleep(1000);
                
            }
            catch(InterruptedException ex){
                ex.printstacktrace();
            }
            System.exit(0);
        }
    });
    add(quitButton);
}

public void paint(Graphics g) {
    screenImage = createImage(Main.SCREEN_WIDTH,Main.SCREEN_HEIGHT);
    screenGraphics = screenImage.getGraphics();
    screenDraw(screenGraphics);
    
    g.drawImage(screenImage,null);
}

public void screenDraw(Graphics g) {
    g.drawImage(mImage,null);
    paintComponents(g);
    this.repaint();
}

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)