我一直有问题运行这个程序,它编译,但不能正常运行。当我运行它并尝试执行计算时,它会吐出一堆错误。我认为它必须与可变类型。以下是程序:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class area extends JFrame implements ActionListener, ItemListener{
//row 1
JPanel row1 = new JPanel();
JLabel select = new JLabel("Please select what you would like to caculate the area and volume of.");
//row 2
JPanel row2 = new JPanel();
JCheckBox circle = new JCheckBox("Circle", false);
JCheckBox cube = new JCheckBox("Cube", false);
//row 3
JPanel row3 = new JPanel();
JLabel radlab = new JLabel("Radius of the circle (in cm)");
JTextField rad = new JTextField(3);
JLabel sidelab = new JLabel("A side of the cube (in cm)");
JTextField side = new JTextField(3);
//row4
JPanel row4 = new JPanel();
JButton solve = new JButton("Solve!");
//row 5
JPanel row5 = new JPanel();
JLabel areacallab = new JLabel("Area");
JTextField areacal = new JTextField(10);
JLabel volumelab = new JLabel("Volume");
JTextField volume = new JTextField(10);
public area(){
setTitle("Area Caculator");
setSize(500,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
//disables all text areas
rad.setEnabled(false);
side.setEnabled(false);
areacal.setEnabled(false);
volume.setEnabled(false);
//add listeners
circle.addItemListener(this);
cube.addItemListener(this);
solve.addActionListener(this);
FlowLayout one = new FlowLayout(FlowLayout.CENTER);
setLayout(one);
row1.add(select);
add(row1);
row2.add(circle);
row2.add(cube);
add(row2);
row3.add(radlab);
row3.add(rad);
row3.add(sidelab);
row3.add(side);
add(row3);
row4.add(solve);
add(row4);
row5.add(areacallab);
row5.add(areacal);
row5.add(volumelab);
row5.add(volume);
add(row5);
}
public void circlepick(){
//cube.setCurrent(false);
cube.setEnabled(false);
rad.setEnabled(true);
}
public void cubepick(){
circle.setEnabled(false);
side.setEnabled(true);
}
@Override
public void itemStateChanged(ItemEvent event) {
Object item = event.getItem();
if (item == circle){
circlepick();
}
else if (item == cube){
cubepick();
}
}
@Override
public void actionPerformed(ActionEvent evt){
//String radi = rad.getText();
//String sid = side.getText();
//circlesolve();
//cubesolve();
String radi = rad.getText();
String sid = side.getText();
double radius = Double.parseDouble(radi);
double length = Double.parseDouble(sid);
double cirarea = Math.PI * Math.pow(radius, 2);
double cirvolume = (4.0 / 3) * Math.PI * Math.pow(radius, 3);
double cubearea = Math.pow(length, 2);
double cubevolume = Math.pow(length, 3);
areacal.setText("" + cirarea + cubearea + "");
volume.setText("" + cirvolume + cubevolume + "");
}
public static void main(String[] args) {
area are = new area();
}
}
这里是打印出来的错误,当尝试执行数学(抱歉,它真的很长)。
线程“AWT-EventQueue-0”java.lang.NumberFormatException中出现异常:空字符串
位于Sun.Misc.FloatingDecimal.ReadJavaFormatString(FloatingDecimal.java:1038)
位于java.lang.Double.ParseDouble(Double.java:548)
位于Area.ActionPerformed(Area.java:112)
...
非常感谢你的帮助!
调用函数时:
double radius = Double.parseDouble(radi);
double length = Double.parseDouble(sid);
RADI
或SID
是空的字符串
,这就是
java.lang.NumberFormatException: empty String
告诉您。
您可以考虑在分析之前添加system.out.println(raid+“,”+sid)
,以检查哪些值是空字符串,并确保字符串不是空的。
Double.ParseDouble(String%s)
在无法将给定的字符串%s
解析为Double
值时引发NumberFormatException
。
我在尝试从jformattedtextfield转换为Double时遇到一个问题。我正在用Java编写我的程序。这是我的最后一个学校项目,任何帮助都会得到的。 我的代码:
我试图用MySQL在java swing中开发一个stockManager应用程序。在运行代码时,我遇到以下错误: 我在下面附上代码...它有点长....................... StockManager.java items.java
我对Java编程非常陌生,我正在上一门基于Java的课程。我目前正在做这个咖啡项目,它是基于布尔和RadioButtons的。我相信我几乎完成了它,除了我得到这个错误消息在控制台。如果有任何其他错误,请让我知道,以便我可以修复它!
我正在尝试将文件读取到中,但它提供了一些异常。我正在使用POI库。我该怎么办?请帮帮我。这是我的代码: 这是:
我正在用netbeans编写一个数独程序,下面是代码: 如果你们能找出问题所在,也许可以写try catch exception(因为我不知道怎么写),那就太好了。谢谢。