import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
public class RateanLoan extends JFrame
{
JButton Rate=new JButton("汇率计算器");
JButton Loan=new JButton("贷款计算器");
JButton transform;
JLabel rmb;
JLabel dl;
JTextField account;
JTextField RTD;
double RMB,DL;
double x,y;
public RateanLoan()
{
super("贷款及汇率换算程序");
setSize(600,500);
setVisible(true);
setLayout(new FlowLayout());
add(Rate,"打开汇率计算器");
add(Loan,"打开贷款计算器");
Rate.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFrame Rateframe=new JFrame("汇率计算器");
Rateframe.setLocation(100,50);
Rateframe.setSize(500,500);
Rateframe.setVisible(true);
Rateframe.setLocation(100,50);
Rateframe.setSize(500,500);
Rateframe.setVisible(true);
Button transform=new Button("转换");
Label rmb=new Label("人民币");
Label dl=new Label("美元");
TextField account=new TextField(20);
TextField RTD=new TextField(20);
Rateframe.setLayout(new FlowLayout(FlowLayout.LEET));
Rateframe.add(rmb);
Rateframe.add(account);
Rateframe.add(dl);
Rateframe.add(RTD);
Rateframe.add(transform);
Rateframe.pack();
transform.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(account.getText()!=null)
{
try
{
x=Double.parseDouble(account.getText());
RMB=x/6.6;
RTD.setText(""+RMB);
}
catch(NumberFormatException ex)
{
account.setText("");
}
}
if(account.getText().equals("")==true)
{
y=Double.parseDouble(RTD.getText());
DL=y*6.6;
account.setText(""+DL);
}
}
});
}//非法的表达式开始
});
public static void main(String[] args)
{
new RateanLoan();
}
花括号不匹配。如果你真的有兴致想把你的代码写对,起码先把缩进调整下,这样很容易就发现哪里多了一个花括号。
如果你就是为了交一个作业,我也给你现成的程序了。真不知道你反复提问花钱是为了什么。
92行 98行
92行上面多了");"
朋友,刚学编程吧,给你一个小小建议,别着急看结果,先把代码格式规范化,养成写代码好习惯,才能事半功倍!
92行 98行 这里有错误
你的代码明显是嵌套多了,“{}”“()”不匹配了,规范一下代码编写,你可以用折叠代码的方式,看看“{}”是否匹配,希望能帮到你!
92行有错误,再看看
代码明显嵌套多,“{}”“()”不匹配,规范一下代码编写,你可以用折叠代码的方式,看看“{}”是否匹配
说明一下你的问题:
1.首先你的逻辑没问题,其实就是细节问题,在下面贴出的代码中有注释,比如某个拼写错误及符号缺省了等。
2.还有就是变量的作用域,你这里有个TextField account,RTD作用域是不够的,当前的修改是将变量设为final类型的
或者你可以将其设为全局变量static 静态修饰等。
3.这里你只是实现了汇率计算器是吧,另一个我看你也没addActionListener,所以没实现。这个你也能实现,自己做一下吧,有问题可以沟通
代码如下:
package so_FSSC;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
public class RateanLoan extends JFrame
{
JButton Rate=new JButton("汇率计算器");
JButton Loan=new JButton("贷款计算器");
JButton transform;
JLabel rmb;
JLabel dl;
JTextField account;
JTextField RTD;
double RMB,DL;
double x,y;
public RateanLoan()
{
super("贷款及汇率换算程序");
setSize(600,500);
setVisible(true);
setLayout(new FlowLayout());
add(Rate,"打开汇率计算器");
add(Loan,"打开贷款计算器");
Rate.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFrame Rateframe=new JFrame("汇率计算器");
Rateframe.setLocation(100,50);
Rateframe.setSize(500,500);
Rateframe.setVisible(true);
Rateframe.setLocation(100,50);
Rateframe.setSize(500,500);
Rateframe.setVisible(true);
Button transform=new Button("转换");
Label rmb=new Label("人民币");
Label dl=new Label("美元");
final TextField account=new TextField(20);//变量问题,这里将其用final修饰
final TextField RTD=new TextField(20);
Rateframe.setLayout(new FlowLayout(FlowLayout.LEFT));//LEFT你拼写错了
Rateframe.add(rmb);
Rateframe.add(account);
Rateframe.add(dl);
Rateframe.add(RTD);
Rateframe.add(transform);
Rateframe.pack();
transform.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(account.getText()!=null)
{
try
{
x=Double.parseDouble(account.getText());
RMB=x/6.6;
RTD.setText(""+RMB);
}
catch(NumberFormatException ex)
{
account.setText("");
}
}
if(account.getText().equals("")==true)
{
y=Double.parseDouble(RTD.getText());
DL=y*6.6;
account.setText(""+DL);
}
}
});
}//非法的表达式开始
});
}//这里少了一个括号
public static void main(String[] args)
{
new RateanLoan();
}
}