Java dilinde String immutable'dir. Yani siz, butona basinca a degerinin pointerini degistirdiniz. Button hala ilk tanimladiginiz degiskeni gormekte. Bu sebeple kodunu su sekilde degistirebilirsin:
public void actionPerformed(ActionEvent e){ a = "kötü"; button.setText(a);
Java dilinde String immutable'dir. Yani siz, butona basinca a degerinin pointerini degistirdiniz. Button hala ilk tanimladiginiz degiskeni gormekte. Bu sebeple kodunu su sekilde degistirebilirsin:
public void actionPerformed(ActionEvent e){ a = "kötü"; button.setText(a);
}
Ama malasefki public void actionPerformed bölümü public frame() bölümündeki kodları okumuyor ben orda button adında bir JButoon oluşturdum ama malesefki actionPerformed bölümü bunları göremiyor mesela ben orda bir string oluştursam aşağısı okumuyor buyüzden ortak bir string oluşturdum bu nedenlede kod çalışmadı buttonu bulamıyor
public void actionPerformed(ActionEvent e){ button.setText("kötü");
}
}
Button objesini frame class'inin degiskenleri seviyesine cekmek gerekiyor birden fazla metodun uzerinde degisiklik yapmasi icin. Bu arada class isimlerini buyuk harf yazmak daha dogru. Kolay gelsin.
package jframe;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class frame extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
static String a = "iyi";
public static void main(String[] args){
new frame().setVisible(true);
}
public frame(){
setSize(300,250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton(a);
add(button);
button.addActionListener(this);
setLayout(new FlowLayout());
}
public void actionPerformed(ActionEvent e){
a = "kötü";
}
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.