import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasChildFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
public class huilvzhuanhuan {
public static void main (String[] args) throws Exception{
Display display = new Display ();
Shell shell= new Shell(display);
shell.setText("汇率转换");
shell.setBounds(20,20,300,300);
shell.setLayout(new GridLayout(1, true));
Label label1=new Label(shell,SWT.SHADOW_NONE);
label1.setBounds(20, 20, 50, 20);
label1.setText("人民币");
Text t1=new Text(shell,SWT.BORDER);
t1.setText("171");//如何能让此处设置为空,且使软件运行正常?
t1.setBounds(80, 20, 50, 20);
final String s=t1.getText();//输入rmb
Label label2=new Label(shell,SWT.SHADOW_NONE);
label2.setBounds(20, 50, 50, 20);
label2.setText("美元");
final Text t2=new Text(shell,SWT.BORDER);
t2.setBounds(80, 50, 50, 20);
Button button=new Button(shell,SWT.PUSH);
button.setBounds(60, 60, 20, 20);
button.setText("转换");
button.addListener(SWT.Selection,new Listener(){
public void handleEvent(Event ev){
String USDRMB = null;
String tmp = null;
float USDRMB1 = 0; //使用HtmlParser获取Google提供的实时汇率。
Parser parser = null;
try {
parser = new Parser("http://www.google.cn/search?sourceid=navclient&hl=zh-CN&ie=UTF-8&rlz=1T4XNLA_zh-CNCN296CN297&q=USD%2fRMB");
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
parser.setEncoding("GB2312");
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
NodeFilter filter=new AndFilter(new TagNameFilter("table"),
new HasChildFilter(new TagNameFilter("tr")));
//TagNameFilter filter = new TagNameFilter("td");
NodeList nl = null;
try {
nl = parser.parse(filter);
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(int i =1;i <nl.size();i++){
tmp = nl.elementAt(i).toPlainTextString();
if (tmp.indexOf("1美元 /人民币")>=0){USDRMB=nl.elementAt(i).toPlainTextString();;}
}
USDRMB=USDRMB.replaceAll(" ","");
USDRMB=USDRMB.replaceAll(" ",""); USDRMB1 = Float.parseFloat(USDRMB.substring(8,18));//汇率获取完毕。
float m = 0;
m=(float) (Float.parseFloat(s)/USDRMB1*31.1034768);
t2.setText(""+m);
}});
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasChildFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
public class huilvzhuanhuan {
public static void main (String[] args) throws Exception{
Display display = new Display ();
Shell shell= new Shell(display);
shell.setText("汇率转换");
shell.setBounds(20,20,300,300);
shell.setLayout(new GridLayout(1, true));
Label label1=new Label(shell,SWT.SHADOW_NONE);
label1.setBounds(20, 20, 50, 20);
label1.setText("人民币");
Text t1=new Text(shell,SWT.BORDER);
t1.setText("171");//如何能让此处设置为空,且使软件运行正常?
t1.setBounds(80, 20, 50, 20);
final String s=t1.getText();//输入rmb
Label label2=new Label(shell,SWT.SHADOW_NONE);
label2.setBounds(20, 50, 50, 20);
label2.setText("美元");
final Text t2=new Text(shell,SWT.BORDER);
t2.setBounds(80, 50, 50, 20);
Button button=new Button(shell,SWT.PUSH);
button.setBounds(60, 60, 20, 20);
button.setText("转换");
button.addListener(SWT.Selection,new Listener(){
public void handleEvent(Event ev){
String USDRMB = null;
String tmp = null;
float USDRMB1 = 0; //使用HtmlParser获取Google提供的实时汇率。
Parser parser = null;
try {
parser = new Parser("http://www.google.cn/search?sourceid=navclient&hl=zh-CN&ie=UTF-8&rlz=1T4XNLA_zh-CNCN296CN297&q=USD%2fRMB");
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
parser.setEncoding("GB2312");
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
NodeFilter filter=new AndFilter(new TagNameFilter("table"),
new HasChildFilter(new TagNameFilter("tr")));
//TagNameFilter filter = new TagNameFilter("td");
NodeList nl = null;
try {
nl = parser.parse(filter);
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(int i =1;i <nl.size();i++){
tmp = nl.elementAt(i).toPlainTextString();
if (tmp.indexOf("1美元 /人民币")>=0){USDRMB=nl.elementAt(i).toPlainTextString();;}
}
USDRMB=USDRMB.replaceAll(" ","");
USDRMB=USDRMB.replaceAll(" ",""); USDRMB1 = Float.parseFloat(USDRMB.substring(8,18));//汇率获取完毕。
float m = 0;
m=(float) (Float.parseFloat(s)/USDRMB1*31.1034768);
t2.setText(""+m);
}});
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
把 m=(float) (Float.parseFloat(s)/USDRMB1*31.1034768);
t2.setText(""+m);
放到判断里
对s进行下判断·~
if (s != null && !s.trim().equals("")){
m=(float) (Float.parseFloat(s)/USDRMB1*31.1034768);
t2.setText(""+m);
}
try
{
m=(float) (Float.parseFloat(s)/USDRMB1*31.1034768);
t2.setText(""+m);
}
catch
{
t2.setText("0");
}这样,人民币没有输入或者输入0时,当然美元都是0了。