Kargan Skrevet 18. april 2010 Del Skrevet 18. april 2010 (endret) Om jeg legger til en JButton til JPanel på denne måten panal.add(new JButton("Ok",new ImageIcon("src/icon/ok.png"))); er det mulig og bruke public void actionPerformed(ActionEvent e) { if(e.getSource() == ??) } hvor da ?? er ønsket referagnse Endret 18. april 2010 av Kargan Lenke til kommentar
radlekatt Skrevet 18. april 2010 Del Skrevet 18. april 2010 package javaapplication3; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class ButtonTest extends JFrame { public ButtonTest() { setDefaultCloseOperation(EXIT_ON_CLOSE); setLocation(200,200); getContentPane().setLayout(new FlowLayout()); JButton button = new JButton("Klikk her"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Hei!"); }}); getContentPane().add(button); } public static void main(String args[]) { ButtonTest window = new ButtonTest(); window.pack(); window.setVisible(true); } } Radlekatt Lenke til kommentar
Kargan Skrevet 18. april 2010 Forfatter Del Skrevet 18. april 2010 package javaapplication3; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class ButtonTest extends JFrame { public ButtonTest() { setDefaultCloseOperation(EXIT_ON_CLOSE); setLocation(200,200); getContentPane().setLayout(new FlowLayout()); JButton button = new JButton("Klikk her"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Hei!"); }}); getContentPane().add(button); } public static void main(String args[]) { ButtonTest window = new ButtonTest(); window.pack(); window.setVisible(true); } } Radlekatt Det er akkurat dette har lyst til og unngå, har enn del knapper og vil legge dem til uten og måtte ha 10-15 feltvariabler. Lenke til kommentar
Cemi Skrevet 18. april 2010 Del Skrevet 18. april 2010 (endret) Trodde panel.add(new JButton("Ello").addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("ey"); } })); Skulle funke, men det gjorde det ikke. The method add(Component) in the type Container is not applicable for the arguments (void) Litt usikker da Endret 18. april 2010 av Cemi Lenke til kommentar
HV Skrevet 19. april 2010 Del Skrevet 19. april 2010 (endret) Om jeg legger til en JButton til JPanel på denne måten panal.add(new JButton("Ok",new ImageIcon("src/icon/ok.png"))); er det mulig og bruke public void actionPerformed(ActionEvent e) { if(e.getSource() == ??) } hvor da ?? er ønsket referagnse Ingen variabler + anonym lytter panel.add(new JButton(new AbstractAction("Ok", new ImageIcon("src/icon/ok.png")) { public void actionPerformed(ActionEvent e) { System.out.println("Tadaa"); } })); Endret 19. april 2010 av HV Lenke til kommentar
Kargan Skrevet 19. april 2010 Forfatter Del Skrevet 19. april 2010 (endret) Om jeg legger til en JButton til JPanel på denne måten panal.add(new JButton("Ok",new ImageIcon("src/icon/ok.png"))); er det mulig og bruke public void actionPerformed(ActionEvent e) { if(e.getSource() == ??) } hvor da ?? er ønsket referagnse Ingen variabler + anonym lytter panel.add(new JButton(new AbstractAction("Ok", new ImageIcon("src/icon/ok.png")) { public void actionPerformed(ActionEvent e) { System.out.println("Tadaa"); } })); Intresangt, men hvordan blir det nåe enn legger inn til fler knapper med forskjelige funksjoner? Intresangt, men hvordan blir det da når enn legger til fler knapper? Endret 19. april 2010 av Kargan Lenke til kommentar
HV Skrevet 19. april 2010 Del Skrevet 19. april 2010 Husker at jeg lærte ting på skolen som dette; Og det er en særdeles dårlig praksis... Blir mye lettere å skrive feil. if(e.getSource() == btnOne){ } else if(e.getSource() == btnTwo){ } else if(e.getSource() == btnThree){ } else if(e.getSource() == btnFour){ } else if(e.getSource() == btnFive){ } Jeg synes også at indre anonyme klasser er lite oversiktlig og foretrekker private indre klasser. Også mye enklere å skille ut for gjenbruk hvis action skal brukes flere plasser. panel.add(new JButton(new OkAction())); panel.add(new JButton(new FooAction())); panel.add(new JButton(new BarAction())); private final class OkAction extends AbstractAction{ private OkAction() { super("Ok", new ImageIcon("src/icon/ok.png")); } public void actionPerformed(ActionEvent e) { System.out.println("TestSDF$OkAction.actionPerformed"); } } private final class FooAction extends AbstractAction{ private FooAction() { super("Tadaa", new ImageIcon("src/icon/ok.png")); } public void actionPerformed(ActionEvent e) { System.out.println("TestSDF$FooAction.actionPerformed"); } } private final class BarAction extends AbstractAction{ private BarAction() { super("Tadaa", new ImageIcon("src/icon/ok.png")); } public void actionPerformed(ActionEvent e) { System.out.println("TestSDF$BarAction.actionPerformed"); } } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå