1

私はJavaの初心者で、教科書を読んで独学しようとしています。教科書には、アプレットの次のコードが記載されています。

import java.awt.Container;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SavitchCh6Prjct14 extends JApplet implements ActionListener
{

private JLabel response;
private Container contentPane;
public void init()
{
    contentPane = getContentPane();
    contentPane.setBackground(Color.WHITE);

    //Create Button:
    JButton aButton = new JButton("Push me!");
    aButton.addActionListener(this);
    //create label
    response = new JLabel("Thanks. That felt good!");
    ImageIcon smileyFaceIcon = new ImageIcon("smiley.jpg"); 
    response.setIcon(smileyFaceIcon);
    response.setVisible(false);//invisible until button is clicked.
    //Add button:
    contentPane.setLayout(new FlowLayout());
    contentPane.add(aButton);
    //Add Label
    contentPane.add(response);
}//end init
public void actionPerformed(ActionEvent e)
{
    contentPane.setBackground(Color.PINK);
    response.setVisible(true);//show label when true

}//end actionPerformed
}//end class

そして、私の演習の 1 つは、クリックされたボタンがクリックされた後に非表示になるようにすることです。

「reponse.setVisible(true);」直下の「actionPerformed」コードを挿入してみました: aButton.setVisible(false);

しかし、それによりエラーメッセージが表示され、クリック後にボタンが消えるようにこの既存のコードを変更するために他に何をすべきかわかりません。

4

1 に答える 1

2

PerformedAction メソッドでは、設定されているオブジェクトを見つける必要があるため、メソッドの代わりにこれを記述します。

 public void actionPerformed(ActionEvent e)
 {
     contentPane.setBackground(Color.PINK);
     response.setVisible(true);//show label when true

     if(e.getSource() == aButton) {
         aButton.setVisible(false);
     }

 }//end actionPerformed

しかし、ボタンをグローバルとして作成するので、あなたによって

 private JLabel response;
 private Container contentPane;

ボタンを追加する

 private JLabel response;
 private Container contentPane;
 public JButton aButton;

そして、init メソッドで、次のようにします。

 aButton = new JButton("Push me!");

そして維持する

 aButton.addActionListener(this);

これにより、ボタンがグローバル変数として作成され、プログラム全体で表示できるようになり、init メソッド内でボタンが初期化され、ボタンに actionlistener が追加され、アクション リスナーがボタンを読み取ります。ボタンはソースと見なされます (ボタンがクリックされたか、アクションに反応したことを意味します) setVisible(false) メソッドをトリガーし、ボタンを非表示にして、希望する出力を提供します。

これが役立つことを願っています!:)

于 2013-06-09T21:06:42.847 に答える