JPanel. Komponent hieraki. Window/JWindow. Applet/JApplet. JDialog. JFrame

Like dokumenter
Grafisk Brukergrensesnitt

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser. En oversikt over kapittel 19 i boka

Kapittel 15: Grafiske brukergrensesnitt. Del II

Grafiske brukergrensesnitt med Swing og AWT

import javax.swing.*; import java.awt.*;

INF1010. Grafisk brukergrensesni. med Swing og awt del 2. INF Grafisk brukergrensesni4 II

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering

4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I. Stein Gjessing Inst for Informatikk Univ.

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering. del 1. Litt Modell Utsyn - Kontroll

6108 Programmering i Java. Leksjon 8. GUI: Grafisk brukergrensesnitt. Del 2: Roy M. Istad 2015

Kapittel 13: Grafiske brukergrensesnitt. Java som første programmeringsspråk

Kapittel 13: Grafiske brukergrensesnitt. Java som første programmeringsspråk

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf GUI - del 2

Gjennomgang av eksamen H99

INF1010. Grafisk brukergrensesni. med Swing og awt del 2

Inf 1010 GUI - del 2

GUI - del 2. Stein Gjessing Inst for Informatikk Univ. i Oslo

Uke mars 2005 GUI - del 2. GUI (Graphical User Interface)-programmering

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

Kapittel 15: Grafiske brukergrensesnitt. Del II

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. GUI - del 2

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

INF1010 våren 2006 Uke 19: 9. mai 2006 Et større eksempel: Solitaire (kabal)

1 t:n'v'\ekode LO325E. Alle ~vne og trykte. GOd'"j(jent kalkulator

Inf mars 2010 GUI del 2

Eksamensoppgave Vår 2012 Ordinær eksamen Bokmål. Videregående programmering. Eksamensdato: Studium/klasse: 2. klasse

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

Hvordan gjør vi det, to typer av vinduer? Om Grafiske Bruker-Grensesnitt (GUI) GUI (Graphical User Interface)-programmering

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det, to typer av vinduer? GUI (Graphical User Interface)-programmering

LO191D/LC191D Videregående programmering

UNIVERSITETET I OSLO

Mål med kurset. Java i INF Dagens tema. GUI med Swing. Dokumentasjon

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til Ant. oppgaver 6

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

Objektorientert programmering av datastrukturer og grensesnitt (Java) Knut W. Hansson. SKRIFT- SERIEN Nr. 7

Java GUI (AWT og SWING)

INF 1010, vår 2005 Løsningsforslag uke 10

INF1010 Sortering. Marit Nybakken 1. mars 2004

LC191D/LO191D Videregående programmering mai 2010

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf GUI - del 2

ANTDAGER = 358; I Ifra nyttår 08 til 08 1ed julaften

Et enkelt rammeverk for kjøring av OpenGL-programmer i Java

Løsning på småoppgaver etter hvert underkapittel. kap

Utplukk av Java (GUI, kode-konvensjon, Introduksjon til første Java øving. polymorfisme, classpath, javadoc) Java og signalbehandling UNIVERSITETET

Eksamen i INF160, høsten (OBS! svarforslag) 6 timer skriftlig, alle hjelpemidler Faglærer: Ketil Danielsen

Løsning på småoppgaver etter hvert underkapittel. kap

INF1000 Metoder. Marit Nybakken 16. februar 2004

Logo med FXML. Introduksjon. Skrevet av: Hallvard Trætteberg

Java i INF 2310 Dagens tema

UNIVERSITETET I OSLO

Utplukk av Java (GUI, kode-konvensjon, Java og bildebehandling i J2SE. BufferedImage m/venner. polymorfisme, classpath, javadoc) UNIVERSITETET I OSLO

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

import java.util.arraylist;

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

Graphics. Grafikk. Praktisk sett: Koordinatsystemet. kodeeksempel

Sortering med tråder - Quicksort

Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo

GUI («Graphical User Interface») del 2

Java PRP brukermanual

Ol Emnekode: Faglig veileder: I L~~25 A - E!8 Viho~d~.1. F ntall oppga~ forsiden): ;;;handskr~vn-;

INF1000: Forelesning 4. Mer om arrayer Metoder

Klasser, objekter, pekere og UML. INF gruppe 13

HØGSKOLEN I SØR-TRØNDELAG

Fra Python til Java, del 2

Steg 1: Sette opp Java-prosjekt, og lage app-mappe og app-klasse

GUI («Graphical User Interface»)

INF1010, 15. januar time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Steg 1: Opprette app-pakke, app-klasse og FXML-fil

Løsning på småoppgaver etter hvert underkapittel, kapittel 13 18

Les gjennom hele oppgavesettet før du begynner å besvare deloppgavene.

Argumenter fra kommandolinjen

INF Notat om I/O i Java

Les gjennom hele oppgavesettet før du begynner å b,svare deloppgavene.

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java

GUI («Graphical User Interface») del 2

Kapittel 15: Grafiske brukergrensesnitt: Enkel GUI. Del I

UNIVERSITETET I OSLO

TOD063 Datastrukturer og algoritmer

Kapittel 15: Grafiske brukergrensesnitt: Enkel GUI. Del I

Klassen javax.swing.joptionpane

Emnenavn: Objektorientert programmering. Faglærer: Lars Emil Knudsen

GUI («Graphical User Interface»)

Avdeling for ingeniørutdanning Institutt for teknologi

Kapittel 8: Programutvikling

Tilstandsmaskiner med UML og Java

public class NaivRiking { private HeldigSnylter minsnylter; public NaivRiking(HeldigSnylter h) { minsnylter = h;

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ

GUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

INF1010. Grensesnittet Comparable<T>

Transkript:

Komponent hieraki Applet JPanel Component Container JComponent Panel Window JWindow Frame JApplet Dialog Brukes vanligvis som en ekstra container for å få til ønske layout. Legges til som en hvilken som annen knapp. Layout kan settes for en enkel JPanel. Du kan legge til JPanels til andre JPanels og på denne måten få til relativt fansy grafikk JPanel JFrame JDialog Applet/JApplet Begge klassene er ment dersom man ønsker å lage javaprogram som skal kjøre i en browser. JApplet har samme funksjonalitet som Applet, men den støtter i tillegg swing og JFC arkitekturen. Window/JWindow Et vindu som man kan putte grafikk inni. Window har ikke tittellinje eller kant rundt seg. Det er ikke vanlig å bruke denne klassen. Vanligvis bruker man ett av klassens barn: JFrame eller JDialog JFrame Dette er klassen det er vanlig å bruke når man ønsker et vindu. Klassen har tittellinje og kan rundt hele vinduet sitt. Du kan sette layout på en Jframe, dvs contentpanen dens, men det er også vanlig å bruke en eller flere Jpanels for å oppnå den layouten du ønsker. JDialog JDialog er også et vindu, men i motsetning til JFrame må JDialog ha et morvindu. Det er mulig å låse morvinduet slik at du ikke får gjort noe mer i det vinduet før du har lukket dialog vinduet. Det er vanlig å bruke dette vinduet når programmet ditt trenger input fra brukeren. 1

Spørsmål: Hva er hensikten med JPanel klassen? Når brukes JApplet klassen? Hva er hovedforskjellen mellom JWindow og JFrame klassen? Hva er hovedforskjellen på JFrame og JDialog klassen? Hva benyttes vanligvis et JDialogvindu til? Layout Managere: BorderLayout BoxLayout CardLayout FlowLayout GridLayout GridBagLayout BorderLayout Har vi snakket om tidligere: Du setter en continers layout med følgende metodekall: container.setlayout(new BorderLayout); For å legge til komponenter: add(conponent,borderlayout.himmelretni NG); dvs: NORTH,SOUTH,EAST,WEST osv BoxLayout Eneste swinglayouten. Tar hensyn til anbefalt størrelse på komponentene. BoxLayout legger alle komponentene på rekke etterhverandre. Enten vertikalt eller horisontalt. Vanlige metoder i BoxLayout Container cont; cont.setlayout(new BoxLayout(cont,BoxLayout.X_AXIS)); add(component c) brukes på vanlig måte. import java.awt.*; import javax.swing.*; public class VinduTo extends JFrame { private JPanel topdel = new JPanel(); private JPanel bunndel = new JPanel(); public VinduTo(String title) { super(title); public static void main(string[] args) { VinduTo nyttvindu = new VinduTo("Enda et vindu"); nyttvindu.tegnvindu(); 2

public void tegnvindu() { topdel.setlayout(new BoxLayout(topDel, BoxLayout.X_AXIS)); //Lager vinduets nederste del av vinduet bunndel.setlayout(new BoxLayout(bunnDel,BoxLayout.X_AXIS)); JButton avbryt = new JButton("Avbryt"); avbryt.setalignmentx(left_alignment); JButton videre = new JButton("Fortsett"); videre.setalignmentx(right_alignment); bunndel.add(avbryt); bunndel.add(box.createhorizontalglue()); bunndel.add(videre); //SetteLayout på hovedvinduet. Container detgraae = getcontentpane(); detgraae.setlayout(new BoxLayout(detGraae,BoxLayout.Y_AXIS)); detgraae.add(topdel); detgraae.add(box.createverticalglue()); detgraae.add(bunndel); setsize(400,400); pack(); show(); Så legger vi til litt til topdel.setlayout(new BoxLayout(topDel, BoxLayout.X_AXIS)); JLabel tekst = new JLabel("Navn: "); tekst.setalignmentx(left_alignment); JTextField tf = new JTextField(""); tf.setcolumns(25); tf.setalignmentx(right_alignment); topdel.add(tekst); topdel.add(box.createhorizontalglue()); topdel.add(tf); Og får: Hva med litt mellomrom? topdel.add(box.createrigidarea(new topdel.add(tekst); topdel.add(box.createhorizontalglue()); topdel.add(tf); topdel.add(box.createrigidarea(new detgraae.add(topdel); detgraae.add(bunndel); FlowLayout public FlowLayout() public FlowLayout(int alignment) public FlowLayout(int alignment, int horizontalgap, int verticalgap) alignment: FlowLayout.LEFT, CENTER,RIGHT 3

GridLayout public void brukgridlayout() { Container c = getcontentpane(); c.setlayout(new GridLayout(2,2)); c.add(new JButton("1")); c.add(new JButton("2")); c.add(new JButton("3")); c.add(new JButton("4")); setsize(200,100); show(); Resultat: Hvis man endrer vindusstørrelsen til 100,200 isteden: Spørsmål: Hva er hovedforskjellen mellom BoxLayout og de andre Layout typene? Når må vi bruke pack metoden, og når der det unødvendig? Hvilken layouttype ville du brukt om målet var å til en enkel layout fort? Hvilken layouttype ville du brukt om du ønsket mest mulig kontroll? Lyttere Det finnes mange typer lyttere, men den mest nyttige ved siden av ActionListener er nok VindusLytteren. For å lage en slik lytter implementerer man WindowsListener og bruker metoden: addwindowlistener(new VinduLytter(this)) public class VinduLytter implements WindowListener { private VinduTo masert; public VinduLytter(VinduTo nyttvindu) { masert = nyttvindu; public void windowactivated(windowevent e) { public void windowclosed(windowevent e) { System.exit(0); public void windowclosing(windowevent e) { masert.dispose(); public void windowdeactivated(windowevent e) { public void windowdeiconified(windowevent e) { public void windowiconified(windowevent e) { public void windowopened(windowevent e) { Spørsmål Hvordan kan du få en knapp til å virke? Hvordan kan du styre hva som skjer når du trykker på en knapp? Hvorfor kan det være gunstig å bruke en WindowsListener? Hva er egentlig en lytter? 4

Generelt om lyttere: Programmet kjøres til ende, og så stopper alt som vanlig. For at det skal skje noe med GUIen etter dette m man ha lyttere. Lytterne sørger for å bestemte metoder blir kjørt for eksempel dersom du trykker på en bestemt knapp. Programmet stopper så opp igjen til neste gang noen trykker på en knapp. start Programmet startes opp Venter på bedre tider En av lytterne blir utløst. Mainmetoden kjøres Passende metode i Lytterklasse kjøres 5