語境JOptionpane.showMessageDialog不是if語句的容器內工作(事件處理程序)
我試圖建立使用JFrame的和事件具有空白文本字段處理一個百分比計算器和「輸入」按鈕並根據他們點擊哪個按鈕顯示答案(每個按鈕有兩個不同的計算)。
問題
的是,當我把JOptionPane.showMessageDialog行的if/else if語句(全部在actionPerformed方法),在程序運行中,但點擊按鈕什麼都不做 。但是如果我把它放在陳述之外,它說答案變量未申報。我知道一個百分比計算器可以以其他更簡單的方式完成,但這只是我想到的,並且想知道我是否可以做到這一點(我是一個完整的初學者)。
代碼
public class PercentageCalc extends JFrame{
private JTextField item2, item4, item5, item7;
private JButton button, button2;
public PercentageCalc(){
super("Percentage Calculator");
setLayout(new FlowLayout());
JLabel item1 = new JLabel("What is");
add(item1);
JTextField item2 = new JTextField(3);
add(item2);
JLabel item3 = new JLabel("% of");
add(item3);
JTextField item4 = new JTextField(2);
add(item4);
button = new JButton("Enter");
add(button);
JLabel spacer = new JLabel(" ");
add(spacer);
JTextField item5 = new JTextField(3);
add(item5);
JLabel item6 = new JLabel("is what % of");
add(item6);
JTextField item7 = new JTextField(3);
add(item7);
button2 = new JButton("Enter");
add(button2);
thehandler handler = new thehandler();
button.addActionListener(handler);
button2.addActionListener(handler);
}
private class thehandler implements ActionListener{
public void actionPerformed(ActionEvent e){
String strx;
String stry;
double x, y, answer;
if(e.getSource()==button){
strx = item2.getText();
stry = item4.getText();
x = Double.parseDouble(strx);
y = Double.parseDouble(stry);
answer = y * 0.01 * x;
JOptionPane.showMessageDialog(null, answer);
}
else if(e.getSource()==button2){
strx = item5.getText();
stry = item7.getText();
x = Double.parseDouble(strx);
y = Double.parseDouble(stry);
answer = x/y*100;
JOptionPane.showMessageDialog(null, answer);
}
}
爲了更好地幫助越早,張貼[MCVE]或[簡要,獨立的,正確的示例](http://www.sscce.org/)。 –