2016-03-24 21 views
0

私は先週、作業GUIをmakkeしようとしていました。グリッドバッグのレイアウトを試してみましたが、現在は以下のようになっています。しかし、私はそこにいるために働く必要があるすべてのものを得ることができません。私は私がリスナー作ったGUIのGUIとインスタンス変数のテキストエリア

public class testGUI extends JPanel { 
    protected static double [] value; 
    JPanel jp = new JPanel(); 
    JTextArea jt = new JTextArea(10,40); 

    public testGUI() 
    { 
JButton btn1 = new JButton("SportCar"); 
JButton btn2 = new JButton("Van"); 
btn1.addActionListener(new ButtonListener()); 
btn2.addActionListener(new ButtonListener()); 
jp.add(jt); 
add(btn1); 
add(btn2); 
} 
public static void main(String[] args) { 
for (int i=0; i<args.length;i++) 
{ value[i]= Double.parseDouble(args[i]); 
} 
JFrame frame = new JFrame(); 
frame.getContentPane().add(new testGUI()); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(200, 200); 
frame.setVisible(true); 
    } 
} 

class ButtonListener implements ActionListener { 
ButtonListener() {} 
public void actionPerformed(ActionEvent e) { 
if (e.getActionCommand().equals("SportCar")) 
{ Vehicle car1 = new SportCar(value[0],value[1],value[2]); 
    System.out.println("You have made a new Sportcar"); 

} 
else if(e.getActionCommand().equals("Van")) 
{ Vehicle car1= new Van(value[0],value[1],value[2],value[3]); 
    System.out.println("You have made a new Van"); 

} 
    } 
} 

を持って次のコードを取るが、私が行うことができない二つのことは、インスタンス変数を表示するGUIでテキストエリアを作成します。また、SportCarとVanコンストラクタでは3と4の入力番号が必要ですが、これもできません。あまりにも長い間私はGUI上で立ち往生しているのを助けてください。ありがとうございます

+1

正確には動作しません。期待した結果が得られませんか?コンパイル時にエラーが出るのですか?ランタイムエラーが発生しますか? – Stultuske

+0

例えば、value配列は問題を引き起こしています。なぜ私がこれまで行ってきたことがコンパイルされないのかと思います。 – duldi

+0

は "問題を引き起こしています"。あなたはこれについてより具体的になりますか? – Stultuske

答えて

1

まずは、配列を初期化する必要があります。あなたのループの前に右行わ厥:あなたはそれを宣言したものよりも、別のクラスの中からアクセスしたい場合は

value = new double[args.length]; 

はまた、あなたはとてもtestGui.value[i]のようなあなたの静的な配列を呼び出す必要があります。 多くの異なるクラスでこのデータ構造にアクセスする必要がある場合は、リストの使用とシングルトンパターンの使用について考えることもできます。