import java.awt.color;

Like dokumenter
/** *Kamp klassen inneholder kampfakte og hoveddelen av kampmotoren. young */

import java.util.arraylist;

LO191D/LC191D Videregående programmering

OPPGAVE 5b og 8b Java Kode

Grafisk Brukergrensesnitt

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

INF Løsning på seminaropppgaver til uke 8

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

Gjennomgang av eksamen H99

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

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

import java.io.*; import java.util.*; import javagently.text;

Løsningsforslag til eksamen i INF1000 våren 2006

Objektorientert Programmering Ekstraordinær eksamen 2014

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

LC191D/LO191D Videregående programmering mai 2010

HØGSKOLEN I SØR-TRØNDELAG

INF1010. Grensesnittet Comparable<T>

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

IN1010 våren januar. Objektorientering i Java

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

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

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

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

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

INF Seminaroppgaver til uke 3

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

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden

Løsningsforslag Test 2

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

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

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten

INF1010 våren januar. Objektorientering i Java

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %

/** * A cache of words and their stems */ static private Map<String, String> cache = new WeakHashMap<String, String>();

Eksamen Objektorientert Programmering 2012

GUI («Graphical User Interface») del 2

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Kapittel 9: Sortering og søking Kort versjon

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

INF1010 våren Grensesnitt

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

TOD063 Datastrukturer og algoritmer

Løsnings forslag i java In115, Våren 1996

Videregående programmering 6

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

Eksamen i fag SIF8005 Programmering. Torsdag 10. mai 2001 kl

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

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

INF1010 våren Grensesnitt

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

/** * */ public Aktivitet(String navn, String krop, Objekt objekt, Model model) { if(funk.od) System.out.println(" - " + navn + " : " + krop);

INF1000 Prøveeksamen Oppgave 7 og 9

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

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

Repetisjon. INF gruppe 13

UNIVERSITETET I OSLO

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur

INF1010 MVC i tekstbaserte programmer

INF2100. Oppgaver 23. og 24. september 2010

Oppgave01.java class Bongo { 2 public static void main(string[] args){ 3 int[][][]bongo = new int[2][3][4]; 4 5 // SVAR: 24 6 } 7 } 8

Del 3: Evaluere uttrykk

INF Notater. Veronika Heimsbakk 10. juni 2012

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

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

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

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Leksjon 7. Filer og unntak

LO191D/LC191D Videregående programmering eksamen des. 2009

Avdeling for ingeniørutdanning Institutt for teknologi

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Oppgave 1. Løsningsforslag til eksamensoppgave. ITF20006 Algoritmer og datastrukturer Postorden traversering:

Objektorientert design av kode. Refaktorering.

Klassen javax.swing.joptionpane

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

EKSAMEN med løsningsforslag

INF1000: Forelesning 6. Klasser og objekter del 1

Kapittel 14, Hashing. Tema. Definere hashing Studere ulike hashfunksjoner Studere kollisjonsproblemet 17-1

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

INF1010 Sortering. Marit Nybakken 1. mars 2004

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1.

HØGSKOLEN I SØR-TRØNDELAG

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

EKSAMEN. Programvareutvikling. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

Forelesning inf Java 5

Dagens tema Kapittel 8: Objekter og klasser

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

Transkript:

import java.awt.color; GUI klassen til Stadion som du ser kapasistet, utbygge stadion ellers litt info om hvor mange personer som betalte for å se på kampen @author young public class StadionVindu extends JPanelVindu private static JLabel tittel = new JLabel(""); private static JLabel kapasitet = new JLabel(); private static int mittlagid; private static Klubb minklubb; private static Stadion minstadion; public static Container contentpane = SpillVindu.contentPane; private SpringLayout layout = SpillVindu.layout; private static String[] stadionheader = "Utbyggelse","Pris","Valg"; private static Object[][] stadiontabell; private static JScrollPane tabelljs; private static JButton ok; private static JTable lagtabell; private static JLabel minbudsjett = new JLabel(); private static JLabel pop = new JLabel(""); public static int popu = 0; Konstruktoren for å opprette StadionVindu public StadionVindu() super(); contentpane.setlayout(layout); Metode for å sette komponentene før den visesp å skjermen. public void settkomponenter() ArrayList ml = DatabaseManager.ManagerListe; if (!((Manager)(ml.get(ml.size()-1))).hentNavn().equalsIgnoreCase("Tom Nordlie")) mittlagid = ((Manager)(ml.get(ml.size()-1))).hentKlubbID(); stadiontabell = new Object[7][3]; stadiontabell[0][0]= "Utbygg stadion med 100 ekstra seter"; stadiontabell[0][1]= "100000"; stadiontabell[0][2]= Boolean.FALSE; stadiontabell[1][0]= "Utbygg stadion med 500 ekstra seter"; stadiontabell[1][1]= "500000"; stadiontabell[1][2]= Boolean.FALSE; stadiontabell[2][0]= "Utbygg stadion med 1000 ekstra seter"; stadiontabell[2][1]= "1000000"; stadiontabell[2][2]= Boolean.FALSE; stadiontabell[3][0]= "Bygge et VIP-rom"; stadiontabell[3][1]= "2000000"; stadiontabell[3][2]= Boolean.FALSE; stadiontabell[4][0]= "Pusse opp garderobe"; stadiontabell[4][1]= "100000"; stadiontabell[4][2]= Boolean.FALSE; stadiontabell[5][0]= "Bytte ut setene"; stadiontabell[5][1]= "700000"; stadiontabell[5][2]= Boolean.FALSE; stadiontabell[6][0]= "Bygge en splitter ny stadion";

stadiontabell[6][1]= "200000000"; stadiontabell[6][2]= Boolean.FALSE; lagtabell = new JTable (tablemodel); lagtabell.setpreferredscrollableviewportsize(new Dimension(500, 280)); computecolumnwidths(); tabelljs = new JScrollPane(lagTabell); minklubb = Klubb.finnKlubbMedID(mittLagID); minstadion = Stadion.finnStadionMedID(minKlubb.hentStadionID()); tittel.setfont(new Font("Times New Roman", 1, 30) ); tittel.setforeground(new Color(255,255,255)); tittel.settext(minstadion.tostring()); minbudsjett.setforeground(color.white); NumberFormat mb = NumberFormat.getInstance(); minbudsjett.settext(mb.format(minklubb.hentbudsjett())+" kr"); pop.setforeground(new Color(255,255,255)); pop.settext("antall betalende tilskuer i forrige hjemmekamp: " + popu); ok = new JButton (_ok); kapasitet.setfont(new Font("Times New Roman", 1, 20) ); kapasitet.setforeground(new Color(255,255,255)); kapasitet.settext("kapasitet: "+((Stadion) (Stadion.finnStadionMedID(minKlubb.hentStadionID()))).hentKapasitet()); contentpane.add(minbudsjett); contentpane.add(tabelljs); contentpane.add(tittel); contentpane.add(pop); contentpane.add(kapasitet); contentpane.add(ok); int marg = 300; layout.putconstraint(springlayout.west, tittel, marg, SpringLayout.WEST, layout.putconstraint(springlayout.north, tittel, 30, SpringLayout.NORTH, layout.putconstraint(springlayout.west, kapasitet, marg, SpringLayout.WEST, layout.putconstraint(springlayout.north, kapasitet, 40, SpringLayout.NORTH, tittel); layout.putconstraint(springlayout.west, pop, marg, SpringLayout.WEST, layout.putconstraint(springlayout.north, pop, 40, SpringLayout.NORTH, kapasitet); layout.putconstraint(springlayout.west, minbudsjett, marg, SpringLayout.WEST, layout.putconstraint(springlayout.north, minbudsjett, 40, SpringLayout.NORTH, pop); layout.putconstraint(springlayout.west, tabelljs, marg, SpringLayout.WEST, layout.putconstraint(springlayout.north, tabelljs, 40, SpringLayout.NORTH, minbudsjett); layout.putconstraint(springlayout.west, ok, 740, SpringLayout.WEST, layout.putconstraint(springlayout.north, ok, 300, SpringLayout.NORTH, tabelljs); AbstractTableModel tablemodel = new AbstractTableModel() public boolean iscelleditable(int row, int column)

if (column < 2) return false; else return true; public Class getcolumnclass(int column) return getvalueat(0, column).getclass(); public void setvalueat( Object nyverdi, int rad, int kolonne ) stadiontabell[rad][kolonne] = nyverdi; public int getrowcount() return stadiontabell.length; public int getcolumncount() return stadionheader.length; public String getcolumnname(int col) return stadionheader[col]; public Object getvalueat(int row, int col) return stadiontabell[row][col]; ; private static Action _ok = new AbstractAction("Utfør") public void actionperformed(actionevent evt) for (int i = 0; i < stadiontabell.length; i++) if ((Boolean)stadionTabell[i][2] == Boolean.TRUE) if (minklubb.hentbudsjett() >= Integer.parseInt((String)stadionTabell[i][1])) DatabaseManager.budsjettforandring(Integer.parseInt((String)sta diontabell[i][1]),mittlagid); if ( i == 0) if (minstadion.hentekskapasitet() >= 100) DatabaseManager.utbyggStadion(mittLagID, 100); else "Ikke-nok-ekspansjonskapsitet-exception", JOptionPane.ERROR_MESSAGE); else if ( i == 1) if (minstadion.hentekskapasitet() >= 500) DatabaseManager.utbyggStadion(mittLagID, 500); else "Ikke-nok-ekspansjonskapsitet-exception", JOptionPane.ERROR_MESSAGE); else if ( i == 2) if ( minstadion.hentekskapasitet() >= 1000 ) DatabaseManager.utbyggStadion(mittLagID, 1000); else

"Ikke-nok-ekspansjonskapsitet-exception", JOptionPane.ERROR_MESSAGE); else if ( i == 3 ) DatabaseManager.utbyggVipPlasser(mittLagID, 20); DatabaseManager.settPop(mittLagID, 15); else if ( i == 5 ) DatabaseManager.settPop(mittLagID, 45); else if ( i == 6 ) DatabaseManager.utbyggStadion(mittLagID, 25000); DatabaseManager.settPop(mittLagID, 500); else ikke nok penger", "Ikke-nok-penger-exception", JOptionPane.ERROR_MESSAGE); SpillVindu.visVindu(4,true); ; Metode for å vise eller skjule vinduet @param valg tada public void setvisiblevindu(boolean valg) pop.setvisible(valg); tittel.setvisible(valg); kapasitet.setvisible(valg); tabelljs.setvisible(valg); ok.setvisible(valg); minbudsjett.setvisible(valg); private void computecolumnwidths() int hspace = 6; TableModel model = lagtabell.getmodel(); int cols = model.getcolumncount(); int rows = model.getrowcount(); int w[] = new int[ model.getcolumncount() ]; for( int i=0; i<cols; i++ ) w[i] = (int)lagtabell.getdefaultrenderer( String.class ). gettablecellrenderercomponent( lagtabell, lagtabell.getcolumnname( i ), false, false, -1, i ). getpreferredsize().getwidth() + hspace; for( int i=0; i<rows; i++ ) for(int j=0; j<cols; j++ ) Object o = model.getvalueat( i, j ); int width = 0; if ( o!= null ) width = (int)lagtabell.getcellrenderer( i, j ).

i, j ). gettablecellrenderercomponent( lagtabell, o, false, false, getpreferredsize().getwidth() + hspace; if( w[j] < width ) w[j] = width; TableColumnModel colmodel = lagtabell.getcolumnmodel(); for(int i=0; i<cols; i++ ) colmodel.getcolumn( i ).setpreferredwidth( w[i] );