Versions Compared

Key

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

Generelt

Swing er et "lettvekter" API til å lage GUI for java. Swing har en Model-View-Controller GUI-arkitektur, en arkitektur som gjør det mulig å legge grafikk til kode, uten å forandre alt for mye på applikasjonen.

Med swing kan man enkelt lage "buttons"lage buttons, tekstfelt, " check boxes"boxes, " labels", tabeller og  tabeller og lister, i tillegge tillegg til en rekke andre komponenter.
For mer om komponentene og hvordan de virker, se Swing komponenter

Basic komponentbruk og oppbygning

En vanlig måte å bygge opp en GUI-applikasjon med swing er å bruke klassene JFrame og JPanel etter et bestemt mønster.

Konseptet handler om å ha en klasse A, som subklasser (arver) JPanel. A fyller seg selv med komponenter (tekst, buttons, osv.) og danner hele (eller deler) av et vindu.
Merk at en instans av JPanel, et panel, er en komponent på lik linje med et tekstfelt.

En instans av A, a, er altså en komponent utformet slik man ønsker at vinduet sitt skal se ut, men a vil ikke opprette noe vindu som vi kan se og røre ved. Her kommer JFrame inn. En instans av JFrame representeres som et faktisk vindu på skjermen vår. I dette vinduet kan vi legge komponenter på lik linje som et panel, men for å skape en struktur fyller vi hele vinduet eller framen med panelet a

Forklaring til denne strukturen:

Det er vanlig å strukturere koden slik at klassen tilsvarende et vindu eller panel, typisk en subklasse av JPanel, selv fyller seg med innhold og reagerer på brukerens interaksjon med innholdet (kommer lenger ned).
For mindre applikasjoner uten menylinje er det uvanlig å subklasse JFrame, fordi denne er mindre vanlig å gjenbruke. Istedenfor subklasses JPanel som instansieres i en main-metode sammen med en JFrame og settes som JFramens contentPane.
 

 

Code Block
languagejava
titleJPane
linenumberstrue
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class MySimplePanel extends JPanel implements ActionListener  {
	
	JTextArea inputText = new JTextArea("Skriv litt tekst her da vel...");
	JTextArea text = new JTextArea("Dette er South i layouten :)");
	
	JLabel label = new JLabel("Jeg gleder meg til UKA!");
 
	public MySimplePanel () {	
		this.createGUI();
	}
	
	private void createGUI() {
		setLayout(new BorderLayout());
		
		add(inputText, BorderLayout.NORTH);
		add(label, BorderLayout.WEST);
		add(text, BorderLayout.SOUTH);
		
		text.setEditable(false);
	}
}

 

 




se Swing komponenter. 

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

...