java - Text in JLabel doesn't get updated on pressing a JButton -
i working on project program seems have bug can not find.
here mcve reproduces problem:
import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jbutton; import java.awt.flowlayout; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class so{ jlabel label; jbutton button; jpanel panel; jframe frame; public static void main(string[] args){ new so().start(); } public void start() { label = new jlabel("button not pressed"); button = new jbutton("press me"); frame = new jframe(); panel = new jpanel(new flowlayout(flowlayout.center)); panel.add(label); panel.add(button); frame.add(panel); frame.pack(); frame.setlocationrelativeto(null); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setvisible(true); button.addactionlistener(new actionlistener(){ public void actionperformed(actionevent e) { system.out.println("button pressed"); label = new jlabel("button pressed"); //doesn't work frame.repaint(); } }); } } the above program has jlabel text , jbutton both of added jpanel in turn added jframe.
when button pressed, want text in jlabel change. text doesn't changed despite println executing every time press button.
what problem here?
you creating new object of jlabel on clicking on button not adding jpanel or jframe after that.
in spite of creating new object i.e.
label = new jlabel("button pressed") do like,
label.settext("button pressed");
Comments
Post a Comment