如何使用油漆 JFrame

问题描述

我正在用 Java 制作节奏游戏。此代码是注释动画。如果运行此代码,则会绘制图像,并且此图像每 3 秒以 y-=9 重新绘制。但是当我运行此代码时它不会绘制图像。除了油漆,一切都已执行,所以我认为问题在于油漆。我该如何解决这个问题?或者你能告诉我另一种方式吗?

public class MpSt extends JFrame implements ActionListener{
    Music music = new Music("msc1.mp3",true);
    JFrame frm = new JFrame();
    private ImageIcon l_arr = new ImageIcon("../img/l_arrow.png");
    private ImageIcon u_arr = new ImageIcon("../img/u_arrow.png");
    private ImageIcon d_arr = new ImageIcon("../img/d_arrow.png");
    private ImageIcon r_arr = new ImageIcon("../img/r_arrow.png");

    int speed =30;
    Note_l nt1 = new Note_l(380,700);


    

    public MpSt(){
        frm.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
        frm.setTitle("Mint Parfait");
        Rectangle r = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
        frm.setSize(r.width,r.height+100);
        frm.setUndecorated(true);
        frm.setVisible(true);
        frm.setContentPane(new JLabel(new ImageIcon("../img/mint_note.png")));
        music.start();
        frm.addKeyListener(new KeyAdapter() {
            @Override
            public void keypressed(KeyEvent event) {
                int keyCode = (int)event.getKeyChar();
                if(keyCode==27){
                    Setbtn stb = new Setbtn();

                }
            }
        });
        


        class ln1 extends JPanel{
            public ln1(){
                setBackground(new Color(0,0));
            }
            public void paintComponent(Graphics g){
                super.paintComponent(g);
                nt1.paint(g);
            }
        }


        frm.add(new ln1());
        Timer timer = new Timer(speed,this);
        timer.start();




    }

    @Override
    public void actionPerformed(ActionEvent e) {
        nt1.updata();
        repaint();
    }





}
public class Note_l extends JFrame {
    int x,y;
    private Image l_arr = new ImageIcon("../img/l_arrow.png").getimage();
    private Image u_arr = new ImageIcon("../img/u_arrow.png").getimage();
    private Image d_arr = new ImageIcon("../img/d_arrow.png").getimage();
    private Image r_arr = new ImageIcon("../img/r_arrow.png").getimage();


    public Note_l(int x,int y){
        this.x=x;
        this.y=y;
    }
    public void paint(Graphics g){
        g.drawImage(l_arr,x,y,this);

    }
    public void updata(){
        if(y<=0) {}
        else{
            y-=9;}
    }
}

解决方法

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

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

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