我只是試圖通過switch語句獲取事件源,但我不能。我越來越:switch語句所需的常量表達式
常量表達式需要
我在做什麼錯?它甚至有可能嗎?
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main extends JFrame implements ActionListener {
JButton poteguj;
JLabel podstawa, wykladnik, wynik;
JTextField tPodstawa, tWykladnik;
JCheckBox odwroc;
int liczba1, liczba2;
long wynikLiczb;
public Main() {
setTitle("Poteegpowanie");
setSize(400, 250);
setLayout(null);
podstawa = new JLabel("Wprowadz podstawe:");
podstawa.setBounds(20, 40, 150, 20);
add(podstawa);
tPodstawa = new JTextField("");
tPodstawa.setBounds(170, 40, 150, 20);
add(tPodstawa);
wykladnik = new JLabel("Wprowadz wykladnik:");
wykladnik.setBounds(20, 70, 150, 20);
add(wykladnik);
tWykladnik = new JTextField("");
tWykladnik.setBounds(170, 70, 150, 20);
add(tWykladnik);
poteguj = new JButton("Poteguj!");
poteguj.setBounds(130, 120, 100, 40);
add(poteguj);
poteguj.addActionListener(this);
wynik = new JLabel("Wynik: ");
wynik.setBounds(0, 160, 400, 20);
add(wynik);
odwroc = new JCheckBox("Odwroc dzialanie");
odwroc.setBounds(130, 90, 150, 30);
add(odwroc);
}
public static void main(String[] args) {
Main main = new Main();
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
liczba2 = Integer.parseInt(tWykladnik.getText());
liczba1 = Integer.parseInt(tPodstawa.getText());
switch(source){
case poteguj:
if(!odwroc.isSelected()) {
wynikLiczb = (long) Math.pow(liczba1, liczba2);
wynik.setText(liczba1 + " do potegi " + liczba2 + " jest rowne: " + wynikLiczb);
}
else if(odwroc.isSelected()){
wynikLiczb = (int) Math.pow(liczba2, liczba1);
wynik.setText(liczba2 + " do potegi " + liczba1 + " jest rowne: " + wynikLiczb);
}
}
}
}
請將您的代碼添加到問題本身。一個鏈接是不夠的。 –
特別是這個鏈接似乎已經過期了:-( – Mureinik
而且錯誤很明顯 – chrylis