我是java的新手,想在ActionEvent中调用图形方法,例如,假设我想在按下按钮b时绘制一个正方形?感谢任何帮助,谢谢:
package Mst;
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
public class Cours2_2 extends Applet implements ActionListener {
Button a,b,c;
public void init(){
setBackground(Color.pink);
a= new Button("KIRMIZI");
a.addActionListener(this);
add(a);
b= new Button("BEYAZ");
b.addActionListener(this);
add(b);
c= new Button("SARI");
c.addActionListener(this);
add(c);
}
public void paint(Graphics g){
g.drawString("s", 5, 5);
}
public void actionPerformed(ActionEvent e){
String s= e.getActionCommand();
if(s.equals("KIRMIZI")){
setBackground(Color.red);
}
if(s.equals("BEYAZ")){
setBackground(Color.white);
}
if(s.equals("SARI")){
setBackground(Color.yellow);
}
drawStrings(t);
}
public void drawStrings(Graphics t) {
t.setColor(Color.yellow);
t.fillRect(0, 0, 75 ,75);
}
}
我想知道是否应该按下按钮作为方法或功能时创建我想要绘制的这个方块。感谢
答案 0 :(得分:3)
Applet
,如果您“真的”必须使用JApplet
。话虽如此,您应该从JPanel
开始,然后覆盖它的paintComponent
方法(并确保在进行任何自定义绘制之前调用super.paintComponent
。请查看Painting in AWT and Swing和Performing Custom Painting了解更多详情。paint
方法应该绘制组件的当前状态。这意味着您需要提供一些信息和逻辑,绘制方法可以使用这些信息和逻辑来决定绘制什么。例如,你可以有一个由ActionListener
改变的标志,它在你的组件上调用repaint
,当组件被绘制时,你将测试这个标志的状态并决定什么应该做(例如画一个正方形)。更复杂的方法可能会使用List
并利用Shape
API,向List
添加或删除形状,然后绘制方法可以迭代它们油漆
看看Collections Trail和 2D Graphics了解更多详情