java - Nothing happens when button is clicked -


i'm writing program in java i'm using jtabbedpane. each tab associated different panel labels, textfields , button. have used gridbaglayout in panels. have added actionlistener button, when click nothing happens. edit: have other buttons outside jtabbedpane works fine.

i can see nothing happening because this:

public void actionperformed( actionevent e ) {      if ( e.getsource() == button ) {          system.out.println("blablabla");     } 

and nothing printed out.

is there common problems using buttons , gridbaglayout/jtabbedpane?

edit sscce

import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.keyevent; import java.awt.event.windowadapter; import java.awt.event.windowevent; import javax.swing.*;  public class hjelp extends jframe {      private flowlayout layout;     private jbutton button1;      private jbutton button2;     private jpanel menu, frontpage;      private jpanel present, previous, something;      public hjelp() {         layout = new flowlayout(flowlayout.center, 10, 20);          setlayout(layout);         setsize(900, 900);          setlocationrelativeto(null);          setvisible(true);         setpanels();         = something();         add(something, borderlayout.center);         something.setvisible(false);         button1 = new jbutton("click me");          add(button1);         buttonlistener();     }      private void buttonlistener() {         buttonlistener listener = new buttonlistener();         button1.addactionlistener(listener);         button2.addactionlistener(listener);      }      private void setpanels() {         menu = new jpanel(new flowlayout(flowlayout.center, 10, 0));         frontpage = new jpanel();         previous = frontpage;         present = frontpage;         add(menu);     }      public void visiblepanel() {          previous.setvisible(false);         present.setvisible(true);     }      private jpanel something() {         visiblepanel();         jpanel panel = new jpanel();         panel.setlayout(new gridlayout(1, 1));         jtabbedpane tabbedpane = new jtabbedpane();          jcomponent panel1 = tab();         tabbedpane.addtab("click me", panel1);         tabbedpane.setmnemonicat(0, keyevent.vk_1);          tabbedpane.settablayoutpolicy(jtabbedpane.scroll_tab_layout);          panel.add(tabbedpane);          return panel;     }      private jcomponent tab() {         jpanel panel = new jpanel(false);         panel.setpreferredsize(new dimension(870, 300));         panel.setlayout(new gridbaglayout());         gridbagconstraints cs = new gridbagconstraints();         cs.fill = gridbagconstraints.horizontal;         button2 = new jbutton("click me");         cs.gridx = 1;         cs.gridy = 6;         cs.gridwidth = 1;         panel.add(button2, cs);         return panel;   }          private class buttonlistener implements actionlistener {          @override         public void actionperformed( actionevent e ) {              if ( e.getsource() == button1 ) {                      present = something;                      button1.setvisible(false);                     something();                     previous = something;                 }                 else if (e.getsource() == button2) {                     system.out.println("blablabla");                 }          }     }        public static void main(string [] args) {          final hjelp vindu = new hjelp();         vindu.addwindowlistener(                         new windowadapter() {                             @override                             public void windowclosing(windowevent e) {                                 system.exit(0);                             }                         } );     }  } 

solved

solution

you don't need getsource check @ all—your listener (hopefully) attached 1 button, if invoked, means button clicked. remove check , unconditionally print string. if still don't see anything, then have problem.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -