16. marts 2003 - 10:42Der er
11 kommentarer og 1 løsning
actionPerformed
Jeg har sat nogel JRadioButtons i en gruppe op på et panet og sat en Listener til hver. Når jeg trykker på en af JRadioButton vil jeg have min actionPerformed til at indsætte et nyt panel. Det går den også, men først når jeg ændre på vinduets størrelse. Hvordan får jeg den til at "opdate" med det samme?
JRadioButtons reagerer på det som hedder ItemListener: myRButtons.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ //...sætninger } }; utestet men skulle virke
Lidt i tvivl om hvordan min ItemListener skal se ud. Er det sådan her? private class ItemListener implements ActionListener { public void itemStateChanged(ItemEvent event) { Object source = event.getSource();
Næsten... jeg pjejer dog ikke at bruge actionListener til radioknapper. Håber at du kan følge dette: :-) class MyClass implements ItemListener{ //dine attributter inkl. radioklapper MyClass(){ radio1.addItemListener(this); } public void itemStateChanged(ItemEvent e){ if(e.getSource() == radio1){ //Do something } else if(e.getSource() == radio2){ .... } } }
Kan man implementer ItemListener hvis man også extender JPanel. Den siger at den ikke kan addItemListener(MyClass) når jeg skriver radio1.addItemListener(this); .
I java kan du extends (arve) fra én klasse men implementere uendelig antal interfaces... så svaret er JA... Ellers post hele din kode hvis det stadig ikke virker
Lidt forenklet så den er lettere at overskue ser den sådan ud: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*;
public class TestPanel extends JPanel implements ItemListener { private JPanel panel, panel2; private JRadioButton x,y,z; private ButtonGroup group;
public TestPanel(JPanel panel_) { panel = panel_; setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
panel2 = new JPanel();
x = new JRadioButton("x"); y= new JRadioButton("y"); z= new JRadioButton("z");
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.