标题:一道JAVA题... ...
只看楼主
樱尔
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2005-10-3
 问题点数:0 回复次数:6 
一道JAVA题... ...

题目目的: 使用SWING设计界面,在文本框输入半径数值,点击"计算"按钮,在LABEL中输出圆面积或周长. 面积:*半径*半径*3.14 周长:半径*2*3.14 程序要求:GUI界面我已经布置好 但他要求要在NORTH部分,加入BUTTONGROUP,即把(RADIOBUTTON)加入BUTTONGROUP中,这点我没明白. 另外 1要使用Double.parseDouble(String a)将字符串转换为DOUBLE类型 2使用NumberFormatException捕获 3将无线按扭的isSelected()方法判断相应的无线按扭是否被选中 我的代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*;

public class Natsumi extends JFrame { JPanel p1,p2; JLabel t1,t2; JTextField f1; JRadioButton r1,r2; JButton b1; public Natsumi() { p1=new JPanel(); p2=new JPanel(); t1=new JLabel("半径"); t2=new JLabel("计算结果为:"); r1=new JRadioButton("面积"); r2=new JRadioButton("周长",true); f1=new JTextField(15); b1=new JButton("计算"); //b1.addActionListener(this); this.setSize(290,210); this.setTitle("Natsumi Abe"); p1.setLayout(new FlowLayout()); p2.setLayout(new GridLayout(2,2)); this.getContentPane().add(p1,BorderLayout.NORTH); this.getContentPane().add(p2); p1.add(r1); p1.add(r2); p2.add(t1); p2.add(f1); p2.add(b1); p2.add(t2); this.setVisible(true); } public void actionPerformed(ActionEvent e) { Double answer; //Double a; Double PI=new Double(3.14); String arr=new String(); Double a=Double.parseDouble(arr); f1.setText(a); if(e.getSource()==b1){ if(r1.isSelected()==true){ answer=a*a*PI; } else answer=a*2*PI; t2.setText("计算结果为:"+answer); } } 有错误,且没思路 有没有高手帮我指导下

搜索更多相关主题的帖子: JAVA 
2005-10-19 16:24
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 
要在NORTH部分,加入BUTTONGROUP,即把(RADIOBUTTON)加入BUTTONGROUP中 RADIOBUTTON是单选按钮,但如果不加入BUTTONGROUP则效果同复选按钮一样。这句话的意思就是在North方向加2个单选按钮,即周长和面积,你可以在初始化的时候设置哪个按钮被选中,则后面就不用判断isSelected了 思路呢,首先你要在文本框中输入一个数字,以此数字来计算周长和面积,所以就要判断输入的数值是否大于0,并且是否为数字或是否为空,否则抛出异常。要求重新输入数字。 在ActionListener中判断选中的是周长还是面积,进行不同的操作。把计算结果输出到JLabel上或JTextField上就可以了 ps:这题我做过,是北大青鸟的前几次的Java机试题目,难度一般了

向着软件工程师的目标前进!
2005-10-19 17:00
lcm
Rank: 4
等 级:贵宾
威 望:13
帖 子:140
专家分:0
注 册:2005-2-4
得分:0 
你要区分好Double和double ,你里面Double和double混淆的很厉害, 还有在构造函数(GUI)里记得加 Button.addActionListener(ActionListener ) ,飘飘叶子提的很好,看看他的指导,可以很快做出来的.. 赶时间,上课去了.....

从 小 事 做 起,脚 踏 实 地 ~
2005-10-19 17:27
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 

import java.awt.*; import java.awt.event.*; import javax.swing.*;

public class Natsumi extends JFrame implements ActionListener { JPanel p1,p2; JLabel t1,t2; JTextField f1; JRadioButton r1,r2; JButton b1; ButtonGroup bg; //按钮组 public Natsumi() { p1=new JPanel(); p2=new JPanel(); t1=new JLabel("半径"); t2=new JLabel("计算结果为:"); r1=new JRadioButton("面积"); r2=new JRadioButton("周长",true); f1=new JTextField(15); b1=new JButton("计算"); bg = new ButtonGroup(); bg.add(r1); bg.add(r2); //把2个单选按钮添加进去,使其在同一时间只能选取一个 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //依然是退出机制,没有真的很不方便。。。 b1.addActionListener(this); this.setSize(290,210); this.setTitle("Natsumi Abe"); p1.setLayout(new FlowLayout()); p2.setLayout(new GridLayout(2,2)); this.getContentPane().add(p1,BorderLayout.NORTH); this.getContentPane().add(p2); p1.add(r1); p1.add(r2); p2.add(t1); p2.add(f1); p2.add(b1); p2.add(t2); this.setVisible(true); }

public void actionPerformed(ActionEvent e) { Double answer,a=1.0; String arr; // Double a; // Double PI=new Double(3.14); try{ arr=f1.getText(); a=Double.parseDouble(arr); if(a < 0) throw new NumberException(); } catch(NumberFormatException ne){ JOptionPane.showMessageDialog(this,"输入的数字格式不正确","Input Error", JOptionPane.ERROR_MESSAGE); return; } catch(NumberException n){ JOptionPane.showMessageDialog(this,n.getMessage(),"Input Error", JOptionPane.ERROR_MESSAGE); return; } catch(Exception ex){System.out.println(ex.toString());} //防止还有其他错误 if(e.getSource()==b1){ if(r1.isSelected()){ answer=Math.PI*a*a; //Math.PI代表的就是圆周率 } else answer=a*2*Math.PI; t2.setText("计算结果为:"+Math.floor(answer)); //去掉多余小数 } } public static void main(String [] args){ new Natsumi(); } private class NumberException extends Exception{ public String getMessage(){ return "数字不能为负"; } } }


向着软件工程师的目标前进!
2005-10-19 18:07
250697812
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-10-5
得分:0 
牛   啊   
都是高手啊   
但是  我有一天也一定会牛的!!!!!!!     

2005-10-21 16:49
limo
Rank: 1
等 级:新手上路
帖 子:358
专家分:0
注 册:2005-7-26
得分:0 

此人无我相、无人相、无众生相、无寿者相,所以者何?离一切相,则名“诸佛”。
2005-10-23 16:00
gameovercn
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-10-25
得分:0 
哎,努力吧

中国!!!你别玩了!!! 我昨天做梦了,我成了个框架师,哈哈
2005-10-25 19:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-30639-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.319142 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved