Gå til innhold

[FIXED]Legge til knapper....


Anbefalte innlegg

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 av Richard87
Lenke til kommentar
Videoannonse
Annonse
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 av zulo
Lenke til kommentar

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

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

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

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 av Richard87
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...