Versions Compared

Key

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

...

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 MySimplePanel2 extends JPanel implements ActionListener  {
	
	JTextArea inputText = new JTextArea("Skriv litt tekst her da vel...");
	
	JButton btn1 = new JButton("Does nothing");
	JButton btn2 = new JButton("Blanks text");
	
	public MySimplePanel () {
		
		btn1.addActionListener(this);
		btn2.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(btn2,BorderLayout.WEST);
		panel1.add(btn1, BorderLayout.EAST);
		
		add(panel1,BorderLayout.NORTH);
		add(inputText, BorderLayout.CENTER);
		add(text,BorderLayout.SOUTH);
		
		text.setEditable(false);
	}
	
	public void actionPerformed(ActionEvent e) {
		
		if (e.getSource() == btn1) {
			JOptionPane.showMessageDialog(null, "Did nothing!");
		}
		if (e.getSource() == btn2) {
			inputText.setText("");
		}
	}
}

Linje 9-13NB! Linjenummer i fullskjermvisning

Linje 8-11: Oppretter globale komponenter som vi må kunne nå fra hele klassen.
Linje 1715-1816: Etter vi har opprettet knappene btn1&2 setter vi en lytter på de. Uten denne lytteren vil det ikke sendes noen beskjed om at knappene har blitt trykket på.

 

 

 

 

 

 

 

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

Code Block
languagejava
titleSwingeksempel
linenumberstrue
collapsetrue
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class GUIExample extends JFrame implements ActionListener  {
	
	JTextArea info = new JTextArea("Hello World!");
	JButton btn = new JButton("Does nothing");
	
	public GUIExample (String title) {
		
		setTitle(title);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		btn.addActionListener(this);
		
		this.createGUI();
	}
	
	private void createGUI() {
		setLayout(new BorderLayout());
		
		add(info, BorderLayout.NORTH);
		add(btn, BorderLayout.SOUTH);
		
	}
	
	public void actionPerformed(ActionEvent e) {
		
		if (e.getSource() == btn) {
			JOptionPane.showMessageDialog(null, "Did nothing!");
		}
	}
	
	public static void main(String[] args) {
		GUIExample gui = new GUIExample("My first swingcode");
		
		gui.pack();
		gui.setVisible(true);
	}
}

 

En kort og brukbar introduksjon til litt flere swingkomponenter kan finnes her (youtube-link)Linje 24: Oppretter en komponent som ikke trenges å nås globalt.
Linje 26-31: Oppretter ett "subpanel" og legger to knapper til Øst og Vest på dette panelet. Deretter legges "subpanelet" til helt øverst på hovedpanelet. Dvs; de to knappene vil ligge øverst på hovedpanelet, og dernest til høyre og venstre.
Linje 38: Funksjonen som lytterne kaller når brukerinteraksjoner foretas. Parameteren e er et Action-objekt som bærer info om hendelsen som har funnet sted.
Linje 40-42: Dersom kilden til hendelsen er btn1 skal det dukke opp et dialogvindu med tekst.
Linje 43-45: Dersom kilden til hendelsen er btn2 skal teksten i til inputText settes blank.

DENNE SIDEN ER UNDER UTVIKLING