我在下面的代码中遇到了新的错误。最初我有一些名字不同的课程。我改变了它们,但出现了新的错误。下面的代码将无法正常运行,因为我必须删除其中的一些内容。它有太多的人物。希望我没有摆脱需要修复的部分。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import javax.swing.ButtonGroup;
import java.awt.FlowLayout;
public class VolCalc extends JFrame implements ActionListener{
private JTabbedPane jtabbedPane;
private JPanel general;
private JPanel pools;
private JPanel tempCalc;
private JPanel options;
private JPanel hotTub;
private JComponent date;
JTextField lengthText, widthText, depthText, volumeText;
public void CalcVolume(){
JPanel customers = new JPanel();
setTitle("Pools");
setSize(300, 200);
JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );
createGeneral();
createPools();
createOptions();
jtabbedPane = new JTabbedPane();
jtabbedPane.addTab("General", general);
jtabbedPane.addTab("Pools", pools);
jtabbedPane.addTab("Temp Calculator", tempCalc);
jtabbedPane.addTab("Options", options);
jtabbedPane.addTab("Hot Tubs", hotTub);
topPanel.add(jtabbedPane, BorderLayout.CENTER);
}
/* CREATE GENERAL */
public void createGeneral(){
general = new JPanel();
general.setLayout(null);
JLabel dateLabel = new JLabel("Todays Date");
dateLabel.setBounds(10, 15, 150, 20);
general.add(dateLabel);
JFormattedTextField date = new JFormattedTextField(
java.util.Calendar.getInstance().getTime());
date.setEditable(false);
date.setBounds(150,15,150,20);
general.add(date);
JButton Exit = new JButton("Exit");
Exit.setBounds(10,80,150,30);
Exit.addActionListener(this);
Exit.setBackground(Color.red);
general.add(Exit);
}
/* CREATE POOLS */
public void createPools(){
pools = new JPanel();
pools.setLayout(null);
JLabel lengthLabel = new JLabel( "Enter the length of swimming pool(ft):");
lengthLabel.setBounds(10, 15, 260, 20);
pools.add(lengthLabel);
lengthText = new JTextField();
lengthText.setBounds( 260, 15, 150, 20 );
pools.add( lengthText );
JLabel widthLabel = new JLabel("Enter the width of the swimming pool(ft):");
widthLabel.setBounds(10, 60, 260, 20);
pools.add(widthLabel);
widthText = new JTextField();
widthText.setBounds(260, 60, 150, 20);
pools.add(widthText);
JLabel depthLabel = new JLabel("Enter the average depth the swimming pool(ft):");
depthLabel.setBounds(10, 100, 260, 20);
pools.add( depthLabel);
depthText = new JTextField();
depthText.setBounds(260, 100, 150, 20);
pools.add(depthText);
JLabel volumeLabel = new JLabel("The pool volume is:(ft ^3");
volumeLabel.setBounds(10, 200, 260, 20);
pools.add(volumeLabel);
volumeText = new JTextField();
volumeText.setBounds(260, 200, 150, 20);
volumeText.setEditable(false);
pools.add(volumeText);
JButton calcVolume = new JButton("Calculate Volume");
calcVolume.setBounds(150,250,150,30);
calcVolume.addActionListener(this);
pools.add(calcVolume);
JButton Exit = new JButton("Exit");
Exit.setBounds(350,250,80,30);
Exit.addActionListener(this);
Exit.setBackground(Color.white);
pools.add(Exit);
}
public void createOptions()
{
options = new JPanel();
options.setLayout( null );
JLabel labelOptions = new JLabel("Change Company Name:");
labelOptions.setBounds( 150, 50, 150, 20 );
options.add( labelOptions );
JTextField newTitle = new JTextField();
newTitle.setBounds( 150, 70, 150, 20 );
options.add( newTitle );
JButton newName = new JButton("Set New Name");
newName.setBounds(100,115,150,30);
newName.addActionListener(this);
newName.setBackground(Color.yellow);
options.add(newName);
JButton Exit = new JButton("Exit");
Exit.setBounds(250,115,80,30);
Exit.addActionListener(this);
Exit.setBackground(Color.red);
options.add(Exit);
}
public void actionPerformed(ActionEvent event){
JButton button = (JButton)event.getSource();
String buttonLabel = button.getText();
if ("Exit".equalsIgnoreCase(buttonLabel)){
Exit_pressed(); return;
}
if ("Set New Name".equalsIgnoreCase(buttonLabel)){
New_Name();
return;
}
if ("Calculate Volume".equalsIgnoreCase(buttonLabel)){
Calculate_Volume(); return;
}
if ("Customers".equalsIgnoreCase(buttonLabel)){
Customers(); return;
}
if ("Calculate Volume".equalsIgnoreCase(buttonLabel)){
Calculate_Volume();
return;
}
if ("Options".equalsIgnoreCase(buttonLabel)){
Options();
return;
}
}
private void Exit_pressed(){
System.exit(0);
}
private void New_Name(){
System.exit(0);
}
private void Calculate_Volume(){
String lengthString, widthString, depthString;
int length=0;
int width=0;
int depth=0;
lengthString = lengthText.getText();
widthString = widthText.getText();
depthString = depthText.getText();
if (lengthString.length() < 1 || widthString.length() < 1 || depthString.length() < 1){
volumeText.setText("Error! Must enter in all three numbers!!");
return;
}
length = Integer.parseInt(lengthString );
width = Integer.parseInt(widthString );
depth = Integer.parseInt(depthString);
if (length != 0 || width != 0 || depth != 0){
volumeText.setText((length * width * depth) + "" );
}
else{
volumeText.setText("Error! Must Enter in all three numbers!!");
return;
}
}
private void Customers(){
}
private void Options(){
}
public static void main(String[] args){
JFrame frame = new VolCalc();
frame.setSize(525, 350);
frame.setVisible(true);
}
}
ERRS:
java.lang.NoClassDefFoundError:VolCac引起:java.lang.ClassNotFoundException:java.net上的java.security.AccessController.doPrivileged(Native Method)的java.net.URLClassLoader $ 1.run(未知来源)中的VolCac。位于sun.misc.Launcher的java.lang.ClassLoader.loadClass(未知来源)中的URLClassLoader.findClass(未知来源)$ java.lang.ClassLoader.loadClass中的AppClassLoader.loadClass(未知来源)(未知来源)线程中的异常“main “
答案 0 :(得分:10)
我的猜测是您尝试使用以前的启动配置,该配置使用的是旧名称。从上下文菜单中启动类(或使用适当的键盘快捷键,我现在不记得了 - 比如Ctrl-Alt-X,J)将使用 new 名称,并可以解决问题
或者,您可以使用“运行”按钮旁边的下拉菜单并编辑启动配置,告诉它要启动的正确类名。
答案 1 :(得分:4)
不知道如何实例化这个,但堆栈跟踪表明找不到“VolCac”类。在您粘贴的代码中,您的班级名为“VolCalc”......