Question

I tried to make button which changes text of other button, but settext doesn't work.

This is appdroid.java:

package appdroid;

public class appdroid{

    static int a = 640;
    static int b = 400;
    static int c = 100;
    static int d = 100;

    public static void main(String[] args) {
        new gui();
    }
}

this is gui.java:

package appdroid;
import javax.swing.AbstractButton;
import javax.swing.JFrame;
import javax.swing.JButton;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class gui extends JFrame implements ActionListener {

    String[] a = {"Search device","Device not found","Error, bad device","Device found"};
    String[] b = {"Device not found","Error, bad device","Compile"};
    String[] c = {"Device not found","Error, bad device","Unpack"};
    String d = a[0];
    String f = b[0];
    String g = c[0];
    private JButton b1;
    private JButton b2;
    private JButton b3;

    public gui(){

        super("APPDROID");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setSize(appdroid.a,appdroid.b);
        setLocation(appdroid.c,appdroid.d);
        setLayout(new FlowLayout());

        JButton b1 = new JButton(d);
        JButton b2 = new JButton(f);
        JButton b3 = new JButton(g);

        b1.addActionListener(this);
        b2.addActionListener(this);
        b3.addActionListener(this);

        add (b1);
        add (b2);
        add (b3);
    }

    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();

        if(source == b1){
            d = a[3];
            f = b[2];
            b1.setText(d);
            b2.setText(f);
        }

        if(source == b2){
            g = c[2];
            b3.setText(g);
        }

        if(source == b3 && g == c[2]){
            ;
        }
    }
}

I added action event to button, etc how you can see, but it's not working.

Was it helpful?

Solution

You have created 3 local variables within the gui() constructor

    JButton b1 = new JButton(d);
    JButton b2 = new JButton(f);
    JButton b3 = new JButton(g);

I think you wanted to initialize the fields?

    b1 = new JButton(d);
    b2 = new JButton(f);
    b3 = new JButton(g);

since you are comparing source with the fields b1, b2.. in actionPerformed(ActionEvent e) {

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top