import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.text.DecimalFormat;
public class Final extends JFrame
{
private JButton calcButton, exitButton;
private JButton pcalcButton, pexitButton;
private JTextField plength, pwidth, pdepth, pvolume;
private JTextField hlength, hwidth, hdepth, hvolume;
private JLabel lengthLabel, widthLabel, depthLabel, volumeLabel;
private JRadioButton roundrButton, ovalrButton;
public Final()
{
super("Final");
JTabbedPane tab = new JTabbedPane();
// constructing the first panel
JPanel p1 = new JPanel(new GridLayout(5,1));
pcalcButton = new JButton("Calculate Volume");
pexitButton = new JButton("Exit");
plength = new JTextField(5);
pwidth = new JTextField(5);
pdepth = new JTextField(5);
pvolume = new JTextField(5);
lengthLabel = new JLabel("Enter the pool's length (ft):");
widthLabel = new JLabel("Enter the pool's width (ft):");
depthLabel = new JLabel("Enter the pool's depth (ft):");
volumeLabel = new JLabel("The pool's volume (ft^3):");
p1.add(lengthLabel);
p1.add(plength);
p1.add(widthLabel);
p1.add(pwidth);
p1.add(depthLabel);
p1.add(pdepth);
p1.add(volumeLabel);
p1.add(pvolume);
p1.add(pcalcButton);
p1.add(pexitButton);
tab.addTab("Pools", null, p1, " Panel #1");
calcButtonHandler chandler =new calcButtonHandler();
pcalcButton.addActionListener(chandler);
exitButtonHandler ehandler =new exitButtonHandler();
pexitButton.addActionListener(ehandler);
FocusHandler fhandler =new FocusHandler();
plength.addFocusListener(fhandler);
pwidth.addFocusListener(fhandler);
pdepth.addFocusListener(fhandler);
pvolume.addFocusListener(fhandler);
// constructing the second panel
JPanel p2 = new JPanel(new GridLayout(6,1));
ButtonGroup tubtype = new ButtonGroup();
roundrButton = new JRadioButton("Round", true);
roundrButton.setActionCommand("round");
tubtype.add(roundrButton);
ovalrButton = new JRadioButton("Oval", false);
ovalrButton.setActionCommand("oval");
tubtype.add(ovalrButton);
calcButton = new JButton("Calculate Volume");
exitButton = new JButton("Exit");
hlength = new JTextField(5);
hwidth = new JTextField(5);
hdepth = new JTextField(5);
hvolume = new JTextField(5);
lengthLabel = new JLabel("Enter the tub's length (ft):");
widthLabel = new JLabel("Enter the tub's width (ft):");
depthLabel = new JLabel("Enter the tub's depth (ft):");
volumeLabel = new JLabel("The tub's volume (ft^3):");
p2.add(roundrButton);
p2.add(ovalrButton);
p2.add(lengthLabel);
p2.add(hlength);
p2.add(widthLabel);
p2.add(hwidth);
p2.add(depthLabel);
p2.add(hdepth);
p2.add(volumeLabel);
p2.add(hvolume);
p2.add(calcButton);
p2.add(exitButton);
tab.addTab("Hot Tubs", null, p2, " Panel #1");
calcButtonHandler2 ihandler =new calcButtonHandler2();
calcButton.addActionListener(ihandler);
exitButtonHandler ghandler =new exitButtonHandler();
exitButton.addActionListener(ghandler);
FocusHandler hhandler =new FocusHandler();
hlength.addFocusListener(hhandler);
hwidth.addFocusListener(hhandler);
hdepth.addFocusListener(hhandler);
hvolume.addFocusListener(hhandler);
// add JTabbedPane to container
getContentPane().add(tab);
setSize(550, 500);
setVisible(true);
}
public class calcButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
DecimalFormat num =new DecimalFormat(",###.##");
double sLength, sWidth, sdepth, Total;
sLength = Double.parseDouble(plength.getText());
sWidth = Double.parseDouble(pwidth.getText());
sdepth = Double.parseDouble(pdepth.getText());
if(e.getSource() == pcalcButton) {
Total = sLength * sWidth * sdepth;
pvolume.setText(num.format(Total));
try{
String value=pvolume.getText();
File file = new File("output.txt");
FileWriter fstream = new FileWriter(file,true);
BufferedWriter out = new BufferedWriter(fstream);
out.write("Length= "+sLength+", Width= "+sWidth+", Depth= "+sdepth+" so the volume of Swimming Pool is "+value);
out.newLine();
out.close();
}
catch(Exception ex){}
}
}
}
public class calcButtonHandler2 implements ActionListener {
public void actionPerformed(ActionEvent g) {
DecimalFormat num =new DecimalFormat(",###.##");
double cLength, cWidth, cdepth, Total;
cLength = Double.parseDouble(hlength.getText());
cWidth = Double.parseDouble(hwidth.getText());
cdepth = Double.parseDouble(hdepth.getText());
try
{
if(roundrButton.isSelected())//**roundrButton cannot be resolved
{
Total = Math.PI * Math.pow(cLength/2.0, 2) * cdepth;
}
else
{
Total = Math.PI * Math.pow(cLength * cWidth, 2) * cdepth;
}
hvolume.setText(""+num.format(Total));
}
catch(Exception ex){}
}
}
}
public class exitButtonHandler implements ActionListener { //**The public type exitButtonHandler must be defined in its own file
public void actionPerformed(ActionEvent g){
System.exit(0);
}
}
public class FocusHandler implements FocusListener { //**The public type FocusHandler must be defined in its own file
public void focusGained(FocusEvent e) {
}
public void focusLost(FocusEvent e) {
}
public static void main(String args[])
{
Final tabs = new Final();
tabs.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
我得到3個錯誤,在線旁邊用//**
表示。請幫我弄清楚我遇到的問題。初始化故障
最後兩個錯誤是不言自明的,不是嗎?你必須把每個類放到他們自己的文件中。並不是你的[上一個問題]解決roundrButton問題(http://stackoverflow.com/questions/7130300/java-initialization-question)? – JJJ