你的类还实现拦歼姿ActionListener接口,并补全actionPerformed方法,添加监听的方法才不会报错。
有问题的话再问,把问题描述的具体些。
import java.awt.event.ActionEventimport java.awt.event.ActionListener
import java.math.BigDecimal
import java.util.Scanner
import javax.swing.JFrame
import java.awt.Button
import java.awt.Label
import 衡碧java.awt.TextField
import java.awt.Frame
import java.awt.Panel
import java.awt.Color
import java.awt.*
public class PanelTest{
public static void main(String args[]) {
/*Scanner sc = new Scanner(System.in) double pi=3.14,s double r r=sc.nextDouble() s=pi*r*r System.out.println("s等于"+s)*/
EventQueue.invokeLater(new Runnable() {
public void run() {
CricleFrame frame = new CricleFrame()
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setVisible(true)
}
})
}
}
class CricleFrame extends JFrame{
Panel p = new Panel()
TextField t = new TextField()
Button b = new Button("确定")
Label a = new Label("请在此输入半径")
TextField result = new TextField()
银衫 public CricleFrame(){
add(a)
add(t)
add(b)
add(result)
add(p)
setVisible(true)
p.setBackground(Color.black)
a.setBackground(Color.yellow)
t.setBackground(Color.white)
result.setBackground(Color.white)
b.setBackground(Color.cyan)
setSize(300, 300)
咐搏举 setTitle("圆的面积")
a.setBounds(105, 45, 90, 25)
t.setBounds(100, 80, 100, 25)
result.setBounds(100, 180, 100, 25)
b.setBounds(111, 120, 80, 40)
b.addActionListener(new ActionListener() { //按钮点击事件监听
public void actionPerformed(ActionEvent event) {
Double r=0.0
try{
r = Double.parseDouble(t.getText())
}catch (Exception e){
System.out.println(e.getMessage())
}
BigDecimal tmp = new BigDecimal(r * r * Math.PI)
Double area = tmp.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue() //保留2位小数
result.setText(""+area)
}
})
}
}
在你的基础上改了一下,界面什么的没有改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)