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 vi man 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.


Eksempelet under viser hvordan man lager et panel (JPanel) som fyller seg selv med komponenter. Dersom applikasjonen har main-metoden (JFrame) som vist under, vil det skapes et vindu som fylles med panelet MySimpelPanel.

OBS! Juster størrelsen på vinduet når du tester koden. Dette med layout (BorderLayout) kan du lese mer om her.
 

 

Code Block
languagejava
titleJPaneJPanel
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);
	}
}

 

 

Code Block
languagejava
titleJFrame
linenumberstrue
import javax.swing.JFrame;
 
public static void main(String[] args) {
		
	JFrame frame = new JFrame();
		
	MySimplePanel panel = new MySimplePanel();
		
	frame.setContentPane(panel);
	frame.setTitle("YOLO");
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.pack();
	frame.setVisible(true);
}

 




 

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

...