我想在 JFrame 上绘制自定义元素。
我已经通过创建一个类 UI(扩展 JFrame)和一个类 Component(扩展 JPanel)来尝试它。该组件在自身上绘制了一些东西,而 UI 只是添加了这个组件。所以直到现在,我已经写了这段代码:
文件 UI.java
package UIComponent;
import javax.swing.JFrame;
public class UI extends JFrame {
public UI(){
this.setSize(1024,684);
this.setTitle("This is just a test program.");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new Component(20,20,20,20));
this.add(new Component(40,30,20,20));
}
}
文件组件.java
package UIComponent;
import java.awt.Color;
import javax.swing.JPanel;
import java.awt.Graphics;
public class Component extends JPanel {
int x, y, w, h;
public Component(int x, int y, int w, int h){
this.x = x;
this.y = y;
this.w = w;
this.h = h;
}
@Override
public void paintComponent(Graphics g){
g.setColor(Color.red);
g.fillRect(this.x, this.y, this.w, this.h);
}
}
但结果并不是我所接受的。它只绘制一个矩形。