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
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
Post a Comment