【问题标题】:Why won't my JFrame draw?为什么我的 JFrame 不绘制?
【发布时间】:2017-03-21 00:30:31
【问题描述】:

我正在尝试使用图形绘制到我的 JFrame。出于某种原因,它不会绘制任何东西。我究竟做错了什么?我添加了我的绘画方法,导入了所有内容。我是不是把方法放错地方了?

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;

public class Main extends Canvas implements MouseListener, KeyListener {

    public int WIDTH = 1080;
    public static Main main;
    public boolean playing = false;

    public Main() {
        addMouseListener(this);
        addKeyListener(this);

        JFrame frame = new JFrame("Clicker");
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public void paint(Graphics g) {
        g.setColor(Color.BLACK);
        g.fillRect(50, 50, 100, 100);
    }

    public static void main(String[] args) {
        main = new Main();
    }

    public void MainScreen() {

    }

    @
    Override
    public void keyPressed(KeyEvent e) {
        // TODO Auto-generated method stub

    }

    @
    Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub

    }

    @
    Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub

    }

    @
    Override
    public void mouseClicked(MouseEvent evt) {
        // TODO Auto-generated method stub

    }

    @
    Override
    public void mouseEntered(MouseEvent evt) {
        // TODO Auto-generated method stub

    }

    @
    Override
    public void mouseExited(MouseEvent evt) {
        // TODO Auto-generated method stub

    }

    @
    Override
    public void mousePressed(MouseEvent evt) {
        // TODO Auto-generated method stub

    }

    @
    Override
    public void mouseReleased(MouseEvent evt) {
        // TODO Auto-generated method stub

    }

}

【问题讨论】:

    标签: java jframe


    【解决方案1】:

    尝试从JFrame 类而不是Canvas 类扩展:

    public class Main extends JFrame implements ...
    

    你还必须编辑你的构造函数,然后像:

    public Main() {
        super("Clicker");
    
        addMouseListener(this);
        addKeyListener(this);
    
        setExtendedState(JFrame.MAXIMIZED_BOTH); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
        setVisible(true);
    }
    

    【讨论】:

    • 谢谢!这有很大帮助!
    猜你喜欢
    • 2011-01-17
    • 2013-07-21
    • 2014-07-24
    • 2015-10-07
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 2011-10-20
    相关资源
    最近更新 更多