我希望点击按钮能在弹出一个界面显示应付金额,但是点击按钮就报错,大佬们帮看看!
import com.sun.deploy.panel.RuleSetViewerDialog;
import javafx.scene.input.InputMethodTextRun;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import static javax.swing.JOptionPane.showMessageDialog;
public class MyFrame extends JFrame {
public MyFrame() {
initComponents();
}
private JTextField textField1;
private void initComponents() {
JLabel label1 = new JLabel();
JTextField textField1 = new JTextField();
JButton button1 = new JButton();
setVisible(true);
setTitle("消费金额");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(600,300);
setSize(500, 400);
Container contentPane = getContentPane();
contentPane.setLayout(null);
label1.setText("请输入金额");
label1.setFont(label1.getFont().deriveFont(label1.getFont().getSize() + 7f));
contentPane.add(label1);
label1.setBounds(180, 40, 165, 55);
contentPane.add(textField1);
textField1.setBounds(130, 115, 285, 55);
button1.setText("确定");
button1.setFont(button1.getFont().deriveFont(button1.getFont().getSize() + 7f));
button1.addActionListener(e -> button1ActionPerformed(e));
contentPane.add(button1);
button1.setBounds(170, 205, 200, 85);
}
private void button1ActionPerformed(ActionEvent e) {
String s = textField1.getText();
int N = Integer.parseInt(s);
double sum = N;
if(N < 500){
showMessageDialog(this,"您需要支付的金额为:"+sum);
System.out.printf("%.2f",sum);
System.out.println();
}else if(N < 1000){
JOptionPane.showMessageDialog(this,"您需要支付的金额为:"+sum*0.95);
System.out.printf("%.2f",sum*0.95);
System.out.println();
}else if(N < 1500){
showMessageDialog(this,"您需要支付的金额为:"+sum*0.90);
System.out.printf("%.2f",sum*0.90);
System.out.println();
}else if(N < 2500){
showMessageDialog(this,"您需要支付的金额为:"+sum*0.85);
System.out.printf("%.2f",sum*0.85);
System.out.println();
}else{
showMessageDialog(this,"您需要支付的金额为:"+sum*0.80);
System.out.printf("%.2f",sum*0.80);
System.out.println();
}
}
public static void main(String[] args) {
new MyFrame();
}
}
JTextField textField1 = new JTextField();
改为
textField1 = new JTextField();
这个代码有问题
button1.addActionListener(e -> button1ActionPerformed(e));
你都没有实现ActionListener接口,那里的按钮事件哦。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import static javax.swing.JOptionPane.showMessageDialog;
public class MyFrame extends JFrame {
public MyFrame() {
initComponents();
}
private JTextField textField1;
private void initComponents() {
JLabel label1 = new JLabel();
textField1 = new JTextField();
JButton button1 = new JButton();
setVisible(true);
setTitle("消费金额");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(600,300);
setSize(500, 400);
Container contentPane = getContentPane();
contentPane.setLayout(null);
label1.setText("请输入金额");
label1.setFont(label1.getFont().deriveFont(label1.getFont().getSize() + 7f));
contentPane.add(label1);
label1.setBounds(180, 40, 165, 55);
contentPane.add(textField1);
textField1.setBounds(130, 115, 285, 55);
button1.setText("确定");
button1.setFont(button1.getFont().deriveFont(button1.getFont().getSize() + 7f));
button1.addActionListener(e -> button1ActionPerformed(e));
contentPane.add(button1);
button1.setBounds(170, 205, 200, 85);
}
private void button1ActionPerformed(ActionEvent e) {
String s = textField1.getText();
int N = Integer.parseInt(s);
double sum = N;
if(N < 500){
showMessageDialog(this,"您需要支付的金额为:"+sum);
System.out.printf("%.2f",sum);
System.out.println();
}else if(N < 1000){
JOptionPane.showMessageDialog(this,"您需要支付的金额为:"+sum*0.95);
System.out.printf("%.2f",sum*0.95);
System.out.println();
}else if(N < 1500){
showMessageDialog(this,"您需要支付的金额为:"+sum*0.90);
System.out.printf("%.2f",sum*0.90);
System.out.println();
}else if(N < 2500){
showMessageDialog(this,"您需要支付的金额为:"+sum*0.85);
System.out.printf("%.2f",sum*0.85);
System.out.println();
}else{
showMessageDialog(this,"您需要支付的金额为:"+sum*0.80);
System.out.printf("%.2f",sum*0.80);
System.out.println();
}
}
public static void main(String[] args) {
new MyFrame();
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632