Paint und Buttons

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi ist es möglich mit JFrame in der Paint() Bilder usw zu malen und gleichzeitig auf das Fenster Buttons an bestimmte stellen zu setzen, dabei soll aber der Hintergrund noch die Bilder sein.

Meine das in etwa so:

Bild:Landschaft
Bild:Verkäufer
Buttons:Verkäufer

Bitte nicht nur Schlagwörter :) vllt habt ihr sogar ein kleines Beispiel.
 

Marco13

Top Contributor
Sinnvollerweise würde man das nicht direkt im Frame machen, sondern in einem Panel (das evtl. dann die einzige Component in diesem Frame ist)

Code:
class ImagePanel
{
    private BufferedImage image;

    public ImagePanel(BufferedImage image)
    {
        this.image = image;
    }

    public void paintComponent(Graphics g)
    {
        g.drawImage(image, 0,0, this); // Erst das Bild malen
        super.paintComponent(g); // Dann den Rest (Buttons und andere Children)
    }
}
Das Panel kann man wie ein normales Panel verwenden, nur dass man ihm beim Erstellen zusätlich ein Bild gibt, das dann gezeichnet wird.
 
G

Gast

Gast
Code:
import java.awt.*;
import javax.swing.*;

public class BvP {

	public static void main(String[] args) {
		
		ImagePanel f= new ImagePanel();
		f.setSize(640, 544);
		JPanel p1 = new JPanel();
		JButton b1 = new JButton();
		//p1.paintComponents(g); g ??
		p1.add(b1);
		f.add(p1);
		f.setVisible(true);
	}
}

class ImagePanel extends JFrame{ 
    Image image=Toolkit.getDefaultToolkit().getImage("grafik/imoy.gif");

    public void paintComponent(Graphics g) 
    { 
        g.drawImage(image, 0,0, this); // Erst das Bild malen 
        super.paintComponents(g); // Dann den Rest (Buttons und andere Children) 
    } 
}

Soweit habe ich das...Button zeichnets auch aber denke ich nicht über die paintComponent().
Wo muss ich die aufrufen?
 
G

Gast

Gast
ok pfad zur Bild Datei war falsch....problem...er zeichent ganz schnell das bild und dannach sofort wieder die Buttons und löscht das bild
 

Marco13

Top Contributor
ImagePanel ist (wie der name schon sagt, und wie auch in meinem Code stand) ein Panel, und kein Frame. Aber ... ein "setOpaque" hat nocht gefehlt.

Hier nochmal lauffähig (Bildpfad geändert, bei dir halt anpassen)
Code:
import java.awt.*;
import javax.swing.*;

public class BvP {

   public static void main(String[] args) {

      JFrame f = new JFrame();
      f.setSize(200, 544);
      ImagePanel p= new ImagePanel();
      JPanel p1 = new JPanel();
      JButton b1 = new JButton();
      //p1.paintComponents(g); g ??
      p1.add(b1);
      p.add(p1);
      f.add(p);
      f.setVisible(true);
   }
}

class ImagePanel extends JPanel{
    Image image=Toolkit.getDefaultToolkit().getImage("bildA.gif");

    public ImagePanel()
    {
        setOpaque(false);
    }

    public void paintComponent(Graphics g)
    {
        g.drawImage(image, 0,0, this); // Erst das Bild malen
        super.paintComponent(g); // Dann den Rest (Buttons und andere Children)
    }
}
 
G

Guest

Gast
COOOOOOOOL Es funktionier ! :) 1000x dank jetzt kann ich entlich das spiel schreiben ;) geht sicher mit allem oder? Also auch Labels etc..bzw wie mache ich es dann wieder weg? Weil die Person soll auf einem "rasterfeld" laufen und dazu dürfen dann keine buttons o.ä. dort erscheinen. Einfach jframe.remove(panel) ?
 

Marco13

Top Contributor
Hm :? Solche kleinen, schnellen Erfolgserlebnisse (die man mit Java (leider?) sehr viel schneller hat als etwa mit C++) wecken häufig falsche Erwartungen und Illusionen. Man kann zwar mit x.remove(y) Components entfernen, aber es gibt nur wenige Fälle, wo das wirklich Sinn macht. Naja. Das findest du schon noch raus.

http://java.sun.com/docs/books/tutorial/uiswing/
 
G

Gast

Gast
Aber ein Problem habe ich noch...das ist fast so wichtig wie das davor.

Wie kann ich direkt über Pixel-koordinaten einen Button setzen? Weil nur über die Layouts wird es nicht gerade sehr hübsch. Bzw wie kann man die größe davon ändern?

z.b.:

Fenstergröße: 640x480
Button("Neues Spiel"): Größe 100x30 pixel und sitzt auf Pixel 320/400

Wie geht das?
 

Marco13

Top Contributor
panel.setLayout(null);
panel.add(button);
button.setBounds(320, 240, 100, 30);

Layouts sind i.a. besser, weil sie sich der Fenstergröße anpassen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Problem mit paint Methode und Buttons AWT, Swing, JavaFX & SWT 10
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
frager2345 Warum paintComponent hier und nicht paint AWT, Swing, JavaFX & SWT 2
U Was ist der Unterschied von paint und paincomponent? AWT, Swing, JavaFX & SWT 3
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
krgewb 2D-Grafik paint-Methode wird zu oft ausgeführt AWT, Swing, JavaFX & SWT 5
S Zeichen ohne paint-Methode AWT, Swing, JavaFX & SWT 2
J Swing Wann brauche ich @Override vor der paint()-Methode? AWT, Swing, JavaFX & SWT 1
G Eine paint-Methode, 2 Welten? AWT, Swing, JavaFX & SWT 3
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
A paint-Methode aufrufen AWT, Swing, JavaFX & SWT 13
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
L Berechnungen in paint AWT, Swing, JavaFX & SWT 8
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
W Paint-Methode in anderer Klasse funktioniert nicht AWT, Swing, JavaFX & SWT 7
S 2 Paint-Methoden in einer Klasse ? AWT, Swing, JavaFX & SWT 2
J zwei Paint methoden in einer Klasse AWT, Swing, JavaFX & SWT 3
P Paint und paintComponent AWT, Swing, JavaFX & SWT 12
F 2D-Grafik Was ruft die Paint - Methode auf ? AWT, Swing, JavaFX & SWT 2
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
S 2 paint-Methoden in einer Klasse ? AWT, Swing, JavaFX & SWT 2
S Paint Methode ohne implements JPanel AWT, Swing, JavaFX & SWT 1
S Farbe ändern bei der paint-Methode AWT, Swing, JavaFX & SWT 5
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
J Problem mit der paint Methode AWT, Swing, JavaFX & SWT 0
Junb 2D-Grafik paint() Methode bugt? AWT, Swing, JavaFX & SWT 2
C JFrame paint ohne hintergrund nutzen AWT, Swing, JavaFX & SWT 6
I Paint-Methode von nicht statischen Objekten aufrufen AWT, Swing, JavaFX & SWT 3
A Swing Paint mit Button Clear den Hintergrund säubern um wieder zeichnen zu können AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Paint - Wie binde ich repaint ein? AWT, Swing, JavaFX & SWT 8
D JSlider "laggt" nach überschreiben der paint methode AWT, Swing, JavaFX & SWT 2
S paint() verzögern AWT, Swing, JavaFX & SWT 9
K AWT begrenzte anzahl paint aufrufe AWT, Swing, JavaFX & SWT 6
B Infolabel Probleme mit Paint() ? AWT, Swing, JavaFX & SWT 8
L AWT paint mit ArrayList und Iterator AWT, Swing, JavaFX & SWT 3
Furtano AWT paint braucht ein Graphics Objekt ? AWT, Swing, JavaFX & SWT 2
L Swing 64bit Problem mit paint/paintComponent AWT, Swing, JavaFX & SWT 7
A Paint Methode externer auruf AWT, Swing, JavaFX & SWT 5
T JFrame und paint() AWT, Swing, JavaFX & SWT 5
B Ablauf der paint-Methoden von JComponents AWT, Swing, JavaFX & SWT 20
J AWT Methode paint() AWT, Swing, JavaFX & SWT 4
F 2D-Grafik Hostkomponentengröße in paint AWT, Swing, JavaFX & SWT 2
L JFrame an Paint-Inhalt anpassen AWT, Swing, JavaFX & SWT 6
E Warum übermalt paint das ganze Fenster? AWT, Swing, JavaFX & SWT 15
X Bild via FileChooser in paint-Methode laden AWT, Swing, JavaFX & SWT 2
T paint() wird nicht aufgerufen AWT, Swing, JavaFX & SWT 8
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
G paint-Methode kopiert GUI AWT, Swing, JavaFX & SWT 14
H paint überlappend AWT, Swing, JavaFX & SWT 5
E paint AWT, Swing, JavaFX & SWT 3
H Swing paint() von JPanel wird nicht aufgerufen AWT, Swing, JavaFX & SWT 10
L AWT Paint(g) im Listener aufrufen AWT, Swing, JavaFX & SWT 2
S JCheckBox Paint AWT, Swing, JavaFX & SWT 7
F AWT Probleme mit der paint() methode AWT, Swing, JavaFX & SWT 2
C Unterschiedlicher Aufruf der paint() Methode ? (AWT/Swing) AWT, Swing, JavaFX & SWT 2
L Problem mit paint Methode und Bild AWT, Swing, JavaFX & SWT 7
F Swing Paint mit Canvas Element AWT, Swing, JavaFX & SWT 35
K AWT paint wird nicht aufgerufen AWT, Swing, JavaFX & SWT 7
R LayoutManager Image Paint + Text Panel AWT, Swing, JavaFX & SWT 10
F paint-Methode des JComboboxEditorComponent AWT, Swing, JavaFX & SWT 2
S Threads in einen Frame zeichnen lassen (Paint()?!) AWT, Swing, JavaFX & SWT 5
radiac Swing JFrame - paint(g) - FrameObjects bei activeRendering AWT, Swing, JavaFX & SWT 3
I AWT paint() in MouseEvent aufrufen klappt nicht AWT, Swing, JavaFX & SWT 8
T paint() wird zweimal ausgeführt AWT, Swing, JavaFX & SWT 6
hdi Swing JLabel & paint-Methode gemixt - wie schlimm wirklich? AWT, Swing, JavaFX & SWT 5
N Paint methode anhalten und neustarten AWT, Swing, JavaFX & SWT 5
H AWT Wann ist paint() fertig? AWT, Swing, JavaFX & SWT 7
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
W Steuerelemente und paint() in einem JPanel AWT, Swing, JavaFX & SWT 3
M Allgemeines zur paint Methode AWT, Swing, JavaFX & SWT 5
M AWT Component/Canvas erzeugt unerwünschten Rahmen bei paint AWT, Swing, JavaFX & SWT 3
T Dialog ohne Frame, direktes paint in graphics AWT, Swing, JavaFX & SWT 5
G Probleme mit repaint / paint AWT, Swing, JavaFX & SWT 6
A paint()-Methode für Videoexport nutzen AWT, Swing, JavaFX & SWT 2
K repaint() ruft paint() nicht auf AWT, Swing, JavaFX & SWT 14
J Canvas / paint() AWT, Swing, JavaFX & SWT 2
bugmenot paint() verzögert ausgeführt? AWT, Swing, JavaFX & SWT 4
S paint() in anderen Methoden AWT, Swing, JavaFX & SWT 5
J getFontMetrics außerhalb von paint(Graphics g) AWT, Swing, JavaFX & SWT 8
D Paint() Methode aus einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 6
H paint verwenden AWT, Swing, JavaFX & SWT 3
S java.awt.Component und paint() AWT, Swing, JavaFX & SWT 4
A Paint funktioniert nicht richtig AWT, Swing, JavaFX & SWT 7
L Dynamisches Ändern der Größe in JPanel mit paint()-Methode AWT, Swing, JavaFX & SWT 8
G JScrollPane mit "paint" scrollt nicht AWT, Swing, JavaFX & SWT 2
C paint-Methode überschreiben AWT, Swing, JavaFX & SWT 19
hdi meine paint-methode macht faxen? AWT, Swing, JavaFX & SWT 21
T Variable Menge an Bildern außerhalb paint() zeichnen? AWT, Swing, JavaFX & SWT 2
G JFrame JPanel und Paint(Image)? AWT, Swing, JavaFX & SWT 6
S Programm aufgrund von paint() zu langsam AWT, Swing, JavaFX & SWT 18
G paint() wird aufgerufen, aber nicht angezeigt AWT, Swing, JavaFX & SWT 10
G 2x Graphics in einer paint() miteinander verbinden AWT, Swing, JavaFX & SWT 11
M Probleme mit paint() aus JFrame AWT, Swing, JavaFX & SWT 2
G paint() Methode aus anderer klasse aufrufen? AWT, Swing, JavaFX & SWT 6
G Frage zum paint Prozess AWT, Swing, JavaFX & SWT 3
D JPanel und Paint AWT, Swing, JavaFX & SWT 2
B Gui und Zeichnen (paint ? ) AWT, Swing, JavaFX & SWT 4
L Anzeigen von fotos: ImageIcon oder BufferedImage + paint() ? AWT, Swing, JavaFX & SWT 5
G Frage zur paint-Methode (AWT) AWT, Swing, JavaFX & SWT 9
B Button anzeigen bei überschrieber paint() AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen


Oben