Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Dersom man lager en applikasjon som skal ta i mot brukerinteraksjon (trykking på knapper, tasting på tastatur, museklikk, valg i menyer, osv.), bygger dette videre på strukturen for oppbygning forklart ovenfor. 
Vi ønsker å holde interaksjonen i panelet, ikke i framen.

Prinsippet bak brukerinteraksjon bygger på at man gjør setter lyttere på komponenter på panelet sitt lyttbart. Det vil si at når en knapp, tast, el. trykkes på, oppfattes dette av en lytter lytteren til denne komponenten (anse dette som automagisk inntil videre) som gir beskjed til panelet om at noe har skjedd, og hva som skjedde. 

For at lytteren skal kunne gi beskjed til panelet, det ha en metode som lytteren vet om. Panelet må derfor implementere ActionListener-interfacet, som innebærer at panelet garantert har metoden void actionPerformed(ActionEvent e).

OBS! Kjør koden, og se under for beskrivelse av sentrale kodelinjer 

Code Block
languagejava
titleJPanel with ActionListener
linenumberstrue
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class MySimplePanelMySimplePanel2 extends JPanel implements ActionListener  {
	
	JTextArea inputText = new JTextArea("Skriv litt tekst her da vel...");
	JTextArea text = new JTextArea("Dette er South i layouten :)");
	
	JLabelJButton labelbtn1 = new JLabelJButton("Jeg gleder meg til UKA!Does nothing");
	
	JButton btnbtn2 = new JButton("DoesBlanks nothingtext");
	
	public MySimplePanel () {
		
		btn1.addActionListener(this);
		btnbtn2.addActionListener(this);
		
		this.createGUI();
	}
	
	private void createGUI() {
		setLayout(new BorderLayout());
		
		JTextArea text = new JTextArea("Dette er South i layouten og bare til info :)");
		
		JPanel panel1 = new JPanel();
		panel1.setLayout(new BorderLayout());
		panel1.add(inputTextbtn2, BorderLayout.NORTHWEST);
		panel1.add(labelbtn1, BorderLayout.WESTEAST);
		
		add(textpanel1,BorderLayout.SOUTHNORTH);
		add(btninputText, BorderLayout.CENTER);
		add(text,BorderLayout.SOUTH);
		
		text.setEditable(false);
	}
	
	public void actionPerformed(ActionEvent e) {
		
		if (e.getSource() == btnbtn1) {
			JOptionPane.showMessageDialog(null, "Did nothing!");
		}
		if (e.getSource() == btn2) {
			inputText.setText("");
		}
	}
}


Linje 19: Etter vi har opprettet knappen btn setter vi en lytter på den. Uten denne lytteren vil det ikke sendes noen beskjed om at knappen har blitt trykket på.
Linje 


 

 

 

 

 

 

 

Dette eksempelet genererer et vindu med tekst og en knapp. // Eksempelet vil bli forklart med en video senere

...