如何使用ActionListener在画布中绘制形状?

时间:2014-05-06 03:34:27

标签: java swing jframe jpanel paint

我有一个程序,有4个文本字段和一个按钮来绘制矩形,输入数字(x,y,x1,y1)的文本字段和添加它们的按钮(addO),我需要知道如何使用动作侦听器画布中的 paint()方法进行绘制?

1 个答案:

答案 0 :(得分:2)

问题是开放和模糊的,答案很大程度上取决于缺少实施细节......

基本上,从JTextField获取值就像在字段实例上调用getText一样简单......

private JTextField field;
//...
field = new JTextField(10);
add(field);
//...
String text = field.getText();

将值转换为int会要求您使用Integer.parseInt(text)。如果该值不是整数值,则会抛出NumberFormatException错误。同样,您可以改为使用JSpinner

使用ActionListener只是将ActionListener的实例附加到JButton ...

JButton doStuff = new JButton("Do Stuff");
doStuff.addActionListene(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        // See previous comments about extract the field values...
    }
});

Swing中的绘画通常是通过覆盖从paintComponent延伸的组件的JComponent来实现的,通常类似于JPanel

在这种方法中你可以画出你需要的任何东西......

protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawRect(x1, y1, x2, y2);
}

例如。

请参阅:

了解更多详情