2

別のjbuttonをクリックしたときに1つのjbuttonを取得したい。

サンプルコードのリンクはこちら(jbuttonとしてログイン、パスワードとしてasdf)

//File Name= test1.java
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class test1 extends JFrame {
    public static void main(String[] args) {
        new test1();
    }

    public test1() {
        super("Using JButton");
        Container content = getContentPane();
        content.setBackground(Color.white);
        content.setLayout(new FlowLayout());
        JButton button = new JButton("First");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("You clicked first button");
            }
        });
        content.add(button);
        JButton button2 = new JButton("Second");
        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("You clicked second button");
            }
        });
        content.add(button2);
        pack();
        setVisible(true);
    }
}

「最初」ボタンをクリックすると、「2番目」ボタンを非表示にしたい。私の期待は次のようなものです」

button.setName("something");
button.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){
      System.out.println("You clicked first button");
      btn2=getButtonByName("something");
      btn2.setVisible(!btn2.isVisible());
   }
});"
4

1 に答える 1

5

setVisible(boolean)を使用 して可視性を変更できます。これは、投稿されたコードに基づく例です。

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class test extends JFrame {
    public static void main(String[] args) {
        new test();
    }

    public test() {
        super("Using JButton");
        Container content = getContentPane();
        content.setBackground(Color.white);
        content.setLayout(new FlowLayout());
        final JButton button = new JButton("First");
        final JButton button2 = new JButton("Second");
        button.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                System.out.println("You clicked first button");
                button2.setVisible(!button2.isVisible());
            }
        });
        content.add(button);

        button2.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                System.out.println("You clicked second button");
                button.setVisible(!button.isVisible());
            }
        });
        content.add(button2);
        pack();
        setVisible(true);
    }
}
于 2012-08-11T19:05:05.883 に答える