这是我的代码。我对编码有点新意,所以请详细说明。
public class main extends JPanel{
public static Window f = new Window();
public static int Width = 600;
public static int Hight = 400;
public static void main(String args[]){
f.setSize(Width, Hight);
f.setVisible(true);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setTitle("FightForYourLife");
f.setLocationRelativeTo(null);
}
public void main(){
JPanel panel = this;
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(100, 100, 50, 30);
System.out.println("IT IS PAINTING");
}
}
答案 0 :(得分:0)
一堆问题但是数字1:
paintComponent
。在public static void main方法中创建一个新的Main对象并将其添加到Window(为什么是Window而不是JFrame?)。 其他问题:
public void main(){
。请记住,构造函数不具有返回类型,而不是无效,而不是任何东西。所以它应该是public main() {
。JPanel panel = this;
??? public class main {
应为public class Main {
例如:
import java.awt.*;
import javax.swing.*;
// rename main to Main
public class Main extends JPanel{
public static int WIDTH = 600;
public static int HEIGHT = 400;
public static void main(String args[]){
Main main = new Main(); // *** create your main object ***
JFrame f = new JFrame("FightForYourLife");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(main); // *** add your main object to the top-level window
f.pack();
f.setResizable(false);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public Main(){
// JPanel panel = this; // this is not helpful, delete it
}
@Override // let the JPanel size itself.
public Dimension getPreferredSize() {
return new Dimension(WIDTH, HEIGHT);
}
@Override // paintComponent should be protected, not public
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(100, 100, 50, 30);
System.out.println("IT IS PAINTING");
}
}