Richard87 Skrevet 27. mars 2006 Del Skrevet 27. mars 2006 (endret) Jeg prover og legge til en enkel knapp, men jeg kan ikke se det.. Noen forslag? (her er koden min:) //Losning: import javax.swing.*; import java.awt.*; class Form extends JFrame { public Bakgrunn BG = new Bakgrunn("bakgrunn.png"); public Form(String title, int width, int height) { setUndecorated(true); setLayout(null); addTrue(BG); BG.setSize(1024,768); BG.setLocation(0,0); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(width,height); setTitle(title); setResizable(false); setVisible(true); } public Component add(Component controll) { BG.addControll(controll); return controll; } public Component addTrue(Component controll) { super.add(controll); return controll; } } class Bakgrunn extends JPanel { private String strFileName; private int color; private boolean bPicture = false; private boolean bColor = false; public Bakgrunn(String strFileName) { this.strFileName = strFileName; this.bPicture = true; init(); } public Bakgrunn(int color) { this.color = color; this.bColor = true; init(); } private void init() { setLayout(new BorderLayout()); } public void addControll(Component controll) { add(controll); } public void setBakgrunn(String strFileName) { this.strFileName = strFileName; this.bPicture = true; } public void setBakgrunn(int color) { this.color = color; this.bColor = true; } //-------------------------------------------------- //Events: public void paintComponent(Graphics tf) { super.paintComponent(tf); // VIKTIG! if (bPicture) { ImageIcon II = new ImageIcon(strFileName); tf.drawImage(II.getImage(), 0, 0,II.getImageObserver()); II.paintIcon(null, tf,0,0); } else if (bColor) { tf.setColor(new Color(color)); tf.fillRect(0, 0, getWidth(), getHeight()); } } } class frmMain { public static void main(String[] args) { Form frm = new Form("Test EKB", 1024,768); JButton knapp = new JButton("Trykk her!"); knapp.setLocation(500,500); knapp.setSize(100,100); frm.add(knapp); } } Endret 28. mars 2006 av Richard87 Lenke til kommentar
zulo Skrevet 27. mars 2006 Del Skrevet 27. mars 2006 (endret) Jeg prover og legge til en enkel knapp, men jeg kan ikke se det.. Noen forslag? (her er koden min:) import javax.swing.*; import java.awt.*; class Form extends JFrame { public Container GUI; public Form(String title, int width, int height) { setUndecorated(true); setLayout(null); Bakgrunn BG = new Bakgrunn("bakgrunn.png"); add(BG); BG.setSize(1024,768); BG.setLocation(0,0); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(width,height); setTitle(title); setResizable(false); setVisible(true); GUI = BG; } } class Bakgrunn extends JPanel { private String strFileName; private int color; private boolean bPicture = false; private boolean bColor = false; public Bakgrunn(String strFileName) { this.strFileName = strFileName; this.bPicture = true; } public Bakgrunn(int color) { this.color = color; this.bColor = true; } private void init() { setLayout(null); } public void setBakgrunn(String strFileName) { this.strFileName = strFileName; this.bPicture = true; } public void setBakgrunn(int color) { this.color = color; this.bColor = true; } public void paintComponent(Graphics tf) { super.paintComponent(tf); // VIKTIG! if (bPicture) { ImageIcon II = new ImageIcon(strFileName); tf.drawImage(II.getImage(), 0, 0,II.getImageObserver()); II.paintIcon(null, tf,0,0); } else if (bColor) { tf.setColor(new Color(color)); tf.fillRect(0, 0, getWidth(), getHeight()); } } } class frmMain { public static void main(String[] args) { Form frm = new Form("Test EKB", 1024,768); JButton knapp = new JButton("Trykk her!"); knapp.setLocation(500,500); frm.add(knapp); } } 5822077[/snapback] Endret 27. mars 2006 av zulo Lenke til kommentar
aleh Skrevet 27. mars 2006 Del Skrevet 27. mars 2006 Du må nok bruke Containers add metode til å legge til en knapp i en form eller så dekker Bakgrunn panelet bildet. Sitter på laptopen som er ny formatert så jeg får ikke testet det akuratt nå. Kan gi et svar i morgen hvis ingen andre har svar til da. Lenke til kommentar
Pingle Skrevet 28. mars 2006 Del Skrevet 28. mars 2006 frm.getContentPane().add(knapp); Lenke til kommentar
Richard87 Skrevet 28. mars 2006 Forfatter Del Skrevet 28. mars 2006 det fungerer ikke, JPanel er jo panelet som skal tegnes pa... men jeg lyrer pa om paintComponenten min(den modifiserte) tegner over kontrollen(JButton) som skal lages pa dette vinduet... eller bor jeg legge knappen pa et nytt layer(over JPanel'et) ? Lenke til kommentar
Pingle Skrevet 28. mars 2006 Del Skrevet 28. mars 2006 Du vil legge knappen til BG? Hvorfor gjør du det ikke inne i Form? Bakgrunn BG = new Bakgrunn("bakgrunn.png"); JButton knapp = new JButton("Trykk her!"); knapp.setLocation(500,500); getContentPane().BG.add(knapp); Lenke til kommentar
Richard87 Skrevet 28. mars 2006 Forfatter Del Skrevet 28. mars 2006 (endret) Ok, la koden inni i Init koden til Bakgrunn( la til knappen der, og da funket det, mens Laoyten var satt til FlowLayout, men hvorfor virker det ikke nar jeg brukker null som layout? [EDIT] Endret layoten til BorderLayout, og la til en funksjon i Bakgrunn for og legge til elementer, sa funket alt Fin-Fint:D takk for hjelpen folkens;) Endret 28. mars 2006 av Richard87 Lenke til kommentar
Richard87 Skrevet 30. mars 2006 Forfatter Del Skrevet 30. mars 2006 Null Layout is Evil 5830195[/snapback] Hehe, ja, eg tror du har rett, men dette e det fyste programmet eg lage i Java, og pointe e at det ikkje ska resizas... Eg komme nokk te og bruka layout mgr's etter hvert, men 'pa' hoved formen bruker jeg det ikke, far mer kontroll over hvor ting skal plaseres... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå