2

プログラムでJavaSwingでウィザードを作成しようとしています。

ウィザードペインには次のボタンがあり、ウィザードに表示されているパネルに応じて複数のアクションを実行する必要があります。

Javaコマンドパターンを使用することは可能ですか?方法を教えてもらえますか?前もって感謝します。

ウィザードに使用したコードは

this.mainPanel.add(fileSelectionPane,"SELECT FILE");
this.mainPanel.add(sqlConnectionPane,"SQL CONNECTION");           
this.mainPanel.add(devicePane,"PARSER");    
this.mainPanel.add(detailsPane,"DISPLAY");      
thisLayout.show(this.mainPanel,"SELECT FILE");    
this.finishButton.setEnabled(false);
this.backButton.setEnabled(false);
if(newValue==1)    {     
    this.thisLayout.show(this.mainPanel, "SQL CONNECTION");   
    this.nextButton.setEnabled(true);    
    this.nextButton.setText("Connect..");  
    this.cancelButton.setEnabled(true);    
    this.backButton.setEnabled(true);
}  

if(newValue==2)    {    
    this.thisLayout.show(this.mainPanel, "PARSER");  
    this.nextButton.setEnabled(true);    
    this.nextButton.setText("Parse..");  
    this.cancelButton.setEnabled(true);    
    this.backButton.setEnabled(true);    
}

[ファイルの選択]と[SQL接続]で特定のアクションを実行するために次のボタンが必要です。

コマンドパターンを使用することは可能ですか?

4

3 に答える 3

3

では、ボタンにアクションリスナーを追加します。これらのアクションリスナーは、イベントが発生したときに何かを実行します。

表示されているパネルに応じてボタンの機能を変更したいですか?ウィザードの状態を反映したインスタンス変数を設定してみませんか?

たとえば(大まかに)、

int状態=0; //ホームパネル

パネルをヘルプページに変更します。イベントリスナーが起動します。「state」を1に設定します。これで、表示されているパネルを追跡できます。

さて、元の問題では、ボタン(複数の機能が必要なボタン)が起動したときに、「状態」変数に基づいて実行するアクションを選択できます。

于 2012-08-17T06:23:10.990 に答える
1
  1. CardLayoutをご覧ください

  2. JDialogJDialogデフォルトではBorderLayoutが事前に実装されています)に配置されたカードは、CENTER領域に配置されます

  3. 新しいJPanelを作成し、そこにJButtonを配置します

  4. JPanelエリアにJButtons入れてSOUTH

  5. ここで検索してください。このフォーラムには、ウィザードまたは画像のpreviueの優れた例がいくつかあります。CardLayout

于 2012-08-17T06:22:06.160 に答える
1

ボタンの次のコードを試してください。

JButton btn1;
btn1= new javax.swing.JButton();
btn1.setToolTipText("Submit");
btn1.setContentAreaFilled(false);
btn1.setBorderPainted(false);
btn1.setMargin(new java.awt.Insets(2, 2, 2, 2));
btn1.addActionListener(this);
btn1.setIcon(this.getIcons()[21]);
add(btn1); // add to Jpanel
btn1.setBounds(250,10, 12, 12);

public void actionPerformed(java.awt.event.ActionEvent evt) {
   Object obj = evt.getSource();
   if (obj == btn1) {
      // your function on on click of button
      return;
   }
于 2012-08-17T06:54:41.403 に答える