在JavaAWT中创建自定义组件
我正在尝试使用JavaAWT或Swing创建一个自定义组件,它将是一个包含许多组件的矩形,包括其他矩形。大概是这样的:在JavaAWT中创建自定义组件,java,awt,Java,Awt,我正在尝试使用JavaAWT或Swing创建一个自定义组件,它将是一个包含许多组件的矩形,包括其他矩形。大概是这样的: ╔══════╗ ║ ┌┐ ║ ║ ├┘ ║ ║ ║ ╚══════╝ 这需要一个组件,我最好用一条指令来画。类似于myFrame.add(newmycomponent()) 你认为最好的方法是什么?有没有一种方法可以使用Rectangle,或者我应该使用JPanel或者Swing中的东西来实现这一点?我建议扩展JPanel并覆盖它的paintCompone
╔══════╗
║ ┌┐ ║
║ ├┘ ║
║ ║
╚══════╝
这需要一个组件,我最好用一条指令来画。类似于myFrame.add(newmycomponent())
你认为最好的方法是什么?有没有一种方法可以使用
Rectangle
,或者我应该使用JPanel
或者Swing中的东西来实现这一点?我建议扩展JPanel
并覆盖它的paintComponent()
方法。请参阅以获取有关此方面的帮助
基本上,当在面板上“绘制”矩形时,您将希望将其保存为Jpanel
的成员。然后,在paintComponent
方法中,您将只绘制保存在JPanel
中的所有矩形
以下是我将如何实现“绘制”方法:
List<Rectangle> recs;
List<Stroke> strokes;
List<Color> colors;
public void drawRectangle(Rectangle newR, Stroke stroke, Color c){
recs.add(newR);
strokes.add(stroke);
colors.add(c);
}
列表记录;
列出笔画;
列出颜色;
公共空心drawRectangle(矩形新建、笔划笔划、颜色c){
记录添加(新记录);
笔划。添加(笔划);
添加(c);
}
并且,油漆组件的外观类似于:
protected void paintComponent(Graphics g){
super.paintComponent(g);
for (int i = 0; i < recs.size(); i ++) {
g.setColor(colors.get(i));
g.setStroke(strokes.get(i));
g.drawRectangle(recs);
}
}
受保护的组件(图形g){
超级组件(g);
对于(int i=0;i
我建议扩展JPanel
并重写它的paintComponent()
方法。请参阅以获取有关此方面的帮助
基本上,当在面板上“绘制”矩形时,您将希望将其保存为Jpanel
的成员。然后,在paintComponent
方法中,您将只绘制保存在JPanel
中的所有矩形
以下是我将如何实现“绘制”方法:
List<Rectangle> recs;
List<Stroke> strokes;
List<Color> colors;
public void drawRectangle(Rectangle newR, Stroke stroke, Color c){
recs.add(newR);
strokes.add(stroke);
colors.add(c);
}
列表记录;
列出笔画;
列出颜色;
公共空心drawRectangle(矩形新建、笔划笔划、颜色c){
记录添加(新记录);
笔划。添加(笔划);
添加(c);
}
并且,油漆组件的外观类似于:
protected void paintComponent(Graphics g){
super.paintComponent(g);
for (int i = 0; i < recs.size(); i ++) {
g.setColor(colors.get(i));
g.setStroke(strokes.get(i));
g.drawRectangle(recs);
}
}
受保护的组件(图形g){
超级组件(g);
对于(int i=0;i
“许多组件”->JPanel,带有布局管理器,用于放置每个组件
“绘制”->替代零部件上的绘制
检查Java教程Swing部分。“许多组件”->JPanel,使用布局管理器放置每个组件
“绘制”->替代零部件上的绘制
检查Java教程Swing部分