2016-11-07 119 views
0

我想用图形绘制到我的JFrame。出于某种原因,它不会画任何东西。我究竟做错了什么?我添加了我的绘画方法,导入了所有内容。我是否将方法放置在错误的地方?为什么我的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 

    } 

} 
+1

检查[这](HTTP: //stackoverflow.com/questions/9612684/drawing-in-java-using-canvas)主题。 – Squiddie

回答

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); 
} 
+0

谢谢!这有助于一吨! –

相关问题