ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
579
579
EMPFEHLEN
-
14.05.09 21:03 #1
- Registriert seit
- May 2009
- Beiträge
- 2
Hallo,
ich habe folgendes Problem: Ich verwende ein Bild als Hintergrund, aber ich weiß nicht wie ich es auch Hintergrund bekomme. Also Panels und Buttons werden nicht darauf gebracht. Entweder sie sind gar nicht zu sehen oder man muss erst mit der Maus drüber fahren um sie zu sehen.
Ich habe es probiert indem ich den Hintergrund in ein Panel gebe und das darüberliegende Panel auf "durchsichtig " setze mir "setOpalse(false)"
Die andere Möglichkeit ist mit der Paint-methode.
Funktioniert beides nicht so richtig =(
Hat jemand eine Idee?
public class QuizLayout extends JFrame {
Vector v = new Vector();
// Anlegen der GUI Elemente
Container cp = this.getContentPane();
Image img = Toolkit.getDefaultToolkit().getImage("wwm.jpg");
JLabel background = new JLabel( new ImageIcon(img), JLabel.CENTER);
JLabel headline = new JLabel("Das JavaQuiz", JLabel.CENTER);
JLabel question = new JLabel("Hier steht die Frage", JLabel.CENTER);
JPanel ctnpnl = new JPanel();
JPanel anspnl = new JPanel();
ButtonGroup bg = new ButtonGroup();
JRadioButton[] answers = new JRadioButton[4];
JPanel btnpnl = new JPanel();
JButton nextbtn = new JButton("Quiz starten");
JButton backbtn = new JButton("Letzte Frage");
Score score = new Score(this);
Events eventhandling = new Events(this, score);
JMenuBar mb = new JMenuBar();
JMenu menu = new JMenu("Anmelden");
JMenuItem mItem1 = new JMenuItem("Anmelden");
// public void paint(Graphics g) {
// Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
// Image img = Toolkit.getDefaultToolkit().getImage("wwm.jpg");
// g.drawImage(img,0,0,scr.width,scr.height,this);
// }
public QuizLayout(Vector v_) {
this.v = v_;
this.setTitle(headline.getText());
this.setSize(500,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(300,200);
this.setJMenuBar(mb);
mb.add(menu);
menu.add(mItem1);
headline.setVerticalAlignment(JLabel.CENTER);
// headline.setOpaque(false);
headline.setFont(new Font("Arial", Font.BOLD, 20));
//answerpanel
anspnl.setLayout(new GridLayout(2,2));
// anspnl.setOpaque(false);
for (int k=0;k<4;k++){
answers[k] = new JRadioButton("RadioButton");
anspnl.add(answers[k]);
bg.add(answers[k]);
}
ctnpnl.setLayout(new GridLayout(2,1));
ctnpnl.add(question);
ctnpnl.add(anspnl);
cp.add("North",background);
cp.add("North",headline);
cp.add("Center",ctnpnl);
btnpnl.setLayout(new GridLayout(1,2));
btnpnl.add(backbtn);
btnpnl.add(nextbtn);
cp.add("South",btnpnl);
addListener();
}
-
Erstmal ein paar Dinge:
1. Code Tags wären echt Etwas feines
2. Fehlt einiges um den Code auszuführen o.o
3. Solltest du unbedingt darauf achten, sauberer zu programmieren, das alles sehr durcheinander.
Hab es mal für mich übersichtlicher gemacht. Ist zwar auch noch recht dreckig der Code, aber egal.Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
import java.awt.BorderLayout; import java.awt.Font; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.util.Vector; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButton; public class QuizLayout extends JFrame { private static final long serialVersionUID = 1L; Vector v; Image img; JLabel headline,question; JPanel ctnpnl,anspnl,btnpnl; JRadioButton[] answers; JButton nextbtn,backbtn; ButtonGroup bg; JMenuBar mb; JMenu menu; JMenuItem mItem1; JComponent cp; QuizLayout(Vector v) { super(); this.v = v; cp = new JComponent() { private static final long serialVersionUID = 1L; public void paint(Graphics g) { for(int i = 0; i < getWidth(); i+=img.getWidth(null)) { for(int j = 0; j < getHeight(); j+=img.getHeight(null)) { g.drawImage(img,i,j,this); } } super.paint(g); } }; img = Toolkit.getDefaultToolkit().getImage("a.png"); headline = new JLabel("Das JavaQuiz", JLabel.CENTER); question = new JLabel("Hier steht die Frage", JLabel.CENTER); ctnpnl = new JPanel(); anspnl = new JPanel(); btnpnl = new JPanel(); answers = new JRadioButton[4]; bg = new ButtonGroup(); nextbtn = new JButton("Quiz starten"); nextbtn.setOpaque(false); backbtn = new JButton("Letzte Frage"); backbtn.setOpaque(false); mb = new JMenuBar(); menu = new JMenu("Anmelden"); mItem1 = new JMenuItem("Anmelden"); configLayout(); } private void configLayout() { this.setTitle(headline.getText()); this.setSize(500,500); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(300,200); this.setJMenuBar(mb); this.setContentPane(cp); mb.add(menu); menu.add(mItem1); headline.setVerticalAlignment(JLabel.CENTER); headline.setFont(new Font("Arial", Font.BOLD, 20)); anspnl.setLayout(new GridLayout(2,2)); anspnl.setOpaque(false); for (int k=0;k<4;k++) { answers[k] = new JRadioButton("RadioButton"); answers[k].setOpaque(false); anspnl.add(answers[k]); bg.add(answers[k]); } ctnpnl.setLayout(new GridLayout(2,1)); ctnpnl.add(question); ctnpnl.add(anspnl); ctnpnl.setOpaque(false); btnpnl.setLayout(new GridLayout(1,2)); btnpnl.setOpaque(false); btnpnl.add(backbtn); btnpnl.add(nextbtn); cp.setLayout(new BorderLayout()); cp.add(headline,BorderLayout.NORTH); cp.add(ctnpnl,BorderLayout.CENTER); cp.add(btnpnl,BorderLayout.SOUTH); super.setVisible(true); } }

Musst es für dich dementsprechend wieder anpassen (Pfad zum Bild + die Klassen, die ich rauswerfen musste, weil ich sie nicht hatte). Hab das Hintergrundbild mal kacheln lassen. Man kann es auber auch über die gesamte Größe zerren, sieht nur Pixelig aus dann find ich.
Was ich gemacht hab: einfach die Paint() Methode der ContentPane überschrieben + super.paint(g); damit auch der Rest gezeichnet wird =)
Mfg hoffe das hilft dir etwasGeändert von Larrywayn (15.05.09 um 14:07 Uhr) Grund: super(); vergessen O:
http://larrywayn.pytalhost.eu xD
Friss zeurst, sonst wirst du gefressen.
-
19.05.09 17:51 #3
- Registriert seit
- May 2009
- Beiträge
- 2
Vielen Dank
funktioniert super!
Bin noch blutiger Anfänger, daher auch der unschöne Code und die Unerfahrenheit mit der Darstellung des Quellcode im Forum.
Ähnliche Themen
-
Bild als Hintergrund für die GUI
Von merTii im Forum Java GrundlagenAntworten: 15Letzter Beitrag: 02.01.11, 16:38 -
Bild als Hintergrund
Von ivory-martin im Forum CSSAntworten: 2Letzter Beitrag: 22.10.07, 19:35 -
Hintergrund Bild
Von FlyingBall im Forum CSSAntworten: 3Letzter Beitrag: 09.07.07, 11:51 -
Hintergrund bild
Von ArneZ im Forum Cinema 4DAntworten: 2Letzter Beitrag: 07.12.06, 12:59 -
Über ein Hintergrund Bild ein Bild legen
Von Orphelina im Forum CSSAntworten: 21Letzter Beitrag: 31.03.05, 09:27





Zitieren
Login





