Versions Compared

Key

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

...

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 man legge komponenter på lik linje som et panel, men for å skape en struktur fyller vi hele vinduet eller framen med panelet a.  Dersom man ønsker en button nederst i vinduet sitt, legges dette altså til i panelet a, ikkeframen.

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
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).Mulighetene med Swing er mange, og om man vil lære seg Swing godt, må man prøve seg fram og bruke ressurser som finnes her og på internett.

DENNE SIDEN ER UNDER UTVIKLING