java编程问题~~~急

我用的是java swing 图形编程,有这样一个问题:有一个文本框和一个combobox,文本框默认值是100000.000,combobox的两个值是Hz和KHz,默认的也就是100000.000Hz,当我点击KHz时,我想让文本框的值单位转换下,也就是除以1000.000,就相当一个单位转换的过程,怎么实现~~???
我想问一下2楼的,你的程序单独运行是对的,可我把你的text.setText((Double.parseDouble(text.getText()))/1000.000+"");这个语句搬到我的程序中,就出现无法将 javax.swing.text.JTextComponent 中的 setText(java.lang.String) 应用于 (double)
textFieldSet1.setText((Double.parseDouble( textFieldSet1.getText()))/1000.000);
帮忙看下

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SwingTest extends JFrame implements ActionListener
{
JPanel jp=new JPanel();
JComboBox box=new JComboBox(new String[]{"Hz","KHz"});
JTextField text=new JTextField(10);
public SwingTest()
{
jp.add(text);
jp.add(box);
text.setText(100000.000+"");
text.setEditable(false);
box.addActionListener(this);

this.add(jp);
this.setVisible(true);
this.setBounds(100,100,300,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
String s=(String)box.getSelectedItem();
if(s.equals("KHz"))
{
text.setText((Double.parseDouble(text.getText()))/1000.000+"");
}
}
public static void main(String[] args)
{
new SwingTest();
}
}

这样就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-26
在combobox中增加事件监听器,在监听器里处理你想要做的事情。

这个很简单,找一本合适的书学习一下吧。
第2个回答  2009-07-26
事件监听 转换的时候应该要点击一个按钮

在这个按钮上加一个事件监听就行了

当点击按钮时,进行转换,并把结果输出到某处
第3个回答  2009-07-26
用Double.parseDouble(text.getText()))/1000.000转换出来的结果是Double,setText只能用String,当然会出现提示,解决方法是:
1、textFieldSet1.setText(””+ Double.parseDouble(text.getText()))/1000.000)) ;
2、textFieldSet1.setText(String.valueOf(Double.parseDouble(text.getText()))/1000.000)) ;
第4个回答  2019-05-11
先看一看自定义的监听,EventListener接口和ObjectEvent类,从基础学起,这个会了!以后无论什么监听你都明白了,
相似回答