我需要一些幫助。 我只是在失業後回到編程之後。在調用另一個方法之前,不等待方法調用完成
我正試圖學習Java,並遇到困難。
問題是我想調用一個方法,應該通過按下一個按鈕來詢問用戶輸入。這會將chouce返回到調用該方法的類。
public class ButtonMain {
private static CreateButton cButton;
public static void main(String[] args) {
cButton = new CreateButton();
cButton.launchButton();
switch(cButton.getSelect()) {
case 'a' : System.out.println("German Car");
break;
case 'b' : System.out.println("Japanese Car");
break;
default : System.out.println("Incorrect Car Selected");
break;
}
}
}
代碼的其餘部分如下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CreateButton implements ActionListener {
private JFrame mainFrame;
private JLabel label1;
private JButton button1;
private JButton button2;
private char select = ' ';
public CreateButton() {
}
public void launchButton() {
createFrame();
createLabel();
createButton1();
createButton2();
}
private void createFrame() {
mainFrame = new JFrame("Cars");
mainFrame.setSize(200, 200);
mainFrame.setLocation(300, 300);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setVisible(true);
mainFrame.setPreferredSize(null);
mainFrame.setLayout(new java.awt.GridLayout(3, 1));
}
private void createLabel() {
label1 = new JLabel("Cars", SwingConstants.CENTER);
label1.setSize(200, 100);
mainFrame.getContentPane().add(label1, BorderLayout.CENTER);
}
public void createButton1() {
button1 = new JButton("Mercedes");
button1.setSize(200, 50);
button1.addActionListener(this);
mainFrame.getContentPane().add(button1, BorderLayout.CENTER);
}
private void createButton2() {
button2 = new JButton("Lexus");
button2.setSize(200, 50);
button2.addActionListener(this);
mainFrame.getContentPane().add(button2, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
select = 'a';
System.out.println(select);
}
else if (e.getSource() == button2) {
select = 'b';
System.out.println(select);
}
}
public char getSelect() {
return select;
}
}
正在發生的事情是,輸出應爲a或b,然後是否選擇德語或日語的汽車,但我越來越不正確的選車。
嘗試記住,Swing是一個事件驅動環境。這是發生的事情,你迴應它。這是一個可以一點點讓使用的概念;) – MadProgrammer 2012-08-13 23:02:36