paint() mit einfügen

Kakulukiam21

Aktives Mitglied
Halli Hallo,

ich sitze hier grade drann und will für mein Programm ne kleine grafische Darstellung mit einbauen.

Sitz aber grad an dem Problem das ich es nicht angezeigt bekomme. Vllt fange ich das auch falsch an ich weiß es nicht.

Ich habe 2 verschiede packages: program & programGraphics

jetzt möchte ich von program.essen die Grafik programGraphics.frühstück anzeigen lassen und da hackt es leider. Ich habe leider keine Ideen mehr

Java:
package programGraphics;

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;

public class Frühstück extends Applet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void paintComponents(Graphics g) {
		super.paintComponents(g);
		g.setColor(Color.BLACK);
		g.fillRect(330, 460, 100, 20);

	}
}

package program;

import javax.swing.*;
import programGraphics.*;

public class Essen{
JPanel background;
JLabel bgImage
Frühstück f = new Frühstück();

	public void anzeige(JFrame gui) {
		
		background = new JPanel();
		background.setLayout(null);
		background.setBounds(0, 0, 1024, 768);

                bgImage = new JLabel(lade bild);
		bgImage.setLayout(null);
		bgImage.setBounds(0, 0, 1024, 768);

                bgImage.add(f);

                gui.add(background);
                gui.setVisible(true);
}
 
S

SlaterB

Gast
ein Applet kann man nicht gut in einem JFrame einfügen,
splitte das auf, der Anzeige-Code gehört irgendwo
- in eine unverfängliche Methode (auch wenn strenggenommen diese paintComponents() schon überall aufgerufen werden könnte)
- in ein JPanel oder ähnlich modulare komplette Komponente

wenn das fertig ist kannst du in jedem JFrame oder Applet oder sonstwo
- die Zeichenmethode in geeigneter Umgebung direkt aufrufen
- oder die Komponente per add() und geeignetem Layout einfügen
 

Kakulukiam21

Aktives Mitglied
Hey Slater... Soweit das ich das ganze splitten muss bin ich auch schon gekommen bin aber dann vor eine Wand gefahren.

Ich habe das Gerüst sage ich mal dazu in einem Panel aufgebaut und habe mir da eben mit Labels zusammengebastelt was eben grundlegend ist. Das ist soweit fertig und muss nur Designgerecht angepasst werden

Das erstellen der Grafiken mach ich in einem extra package oder muss ich das noch weiter auftrennen und ein neues Projekt davon machen (ich hoffe ja nicht). Nur bekomm ich es zZ einfach nicht angezeigt. Wie sage ich der Klasse Essen jetzt das er sich die Grafiken von der Klasse Frühstück holen soll und anzeigen darf ;(

EDIT:

Ich habe es ja mit .add() versucht hatte dabei aber auch keinen Erfolg weil es nicht angezeigt worden ist.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
solange du keinen belastbaren Code postet, läßt sich dieser auch nicht korrigieren,
bei Komponenten, die individuell zeichen, muss z.B. eine PreferredSize angegeben werden,
Java schaut sich nicht selber die Zeichenbefehle an und reserviert entsprechend Platz
 

Kakulukiam21

Aktives Mitglied
Java:
package utaGraphics;

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;

public class Frühstück extends Applet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void paint(Graphics g) {
//             die Grafik, welche angezeigt werden soll wird hier erstellt.
//		super.paintComponents(g);
		g.setColor(Color.GRAY);
		g.fillRect(0, 0, 120, 20);
		
		g.setColor(Color.GREEN);
		g.fillRect(0, 0, 60, 20);
		
		
	}
}

Java:
package program;
 
import javax.swing.*;
import programGraphics.*;

public class Essen extends JFrame{
JPanel background;
JLabel bgImage
Frühstück fr_essen = new Frühstück();
 
    public void anzeige() {
        background = new JPanel();
        background.setLayout(null);
        background.setBounds(0, 0, 1024, 768);
 
        bgImage = new JLabel(lade bild);
        bgImage.setLayout(null);
        bgImage.setBounds(0, 0, 1024, 768);
 
        bgImage.add(fr_essen); // Hier soll einfach nur die Grafik angezeigt werden
 
        this.add(background);
        this.setVisible(true);
}

Muss ich die Grafik sonst noch anders einbinden?
 
S

SlaterB

Gast
Frühstück ist ja immer noch ein Applet, das muss sich wie gesagt ändern,
welche Komponenten man in ein JFrame einfügen kann steht in Tutorials, JPanel + paintComponent ist mein Tipp

in einem JLabel etwas einzufügen geht absolut auf keine Weise,
zusammen mit Pseudocode
> new JLabel(lade bild);
ist das ja komplett unklar, ich will hier nicht dein Experimentierladen sein,
halte dich an Tutorials zu den Dingen, die allgemein bekannt gehen

ein Tipp noch:
> background = new JPanel();
> background.setLayout(null);
> background.setBounds(0, 0, 1024, 768);

setBounds() brauchen die Komponenten die selber in ein null-Layout eingefügt werden, nicht die die selber ein null-Layout haben!
im Moment fügst du das backgroud-Panel in das JFrame-ContentPane mit BorderLayout ein, da ist setBounds() für JPanel ohne Funktion

null-Layout ist einmal mehr etwas was du als Anfänger praktisch auf keinen Fall brauchst/ benutzen solltest,
auch da möchte ich eigentlich nicht die zwangsläufig unendlichen Fehler in jeder Code-Zeile korrigieren
 

Kakulukiam21

Aktives Mitglied
null-Layout ist einmal mehr etwas was du als Anfänger praktisch auf keinen Fall brauchst/ benutzen solltest,
auch da möchte ich eigentlich nicht die zwangsläufig unendlichen Fehler in jeder Code-Zeile korrigieren

Kann ich im nach hinein noch das Layout einfügen?


Ergo soll ich die Grafik die ich in Frühstück machen mit paintComponent als Label machen? Um es auf den Punkt zu bringen :) (und das null - Layout rauswerfen
 
S

SlaterB

Gast
> soll ich die Grafik die ich in Frühstück machen mit paintComponent als Label machen?
ob das geht kann ich gar nichtmal genau sagen, vermutlich schon,

an sich spricht alles auf der Welt aber für den normalen Standard: paintComponent in einem JPanel?!

Galileo Computing :: Java ist auch eine Insel - 14 Einführung in grafische Oberflächen
14.9 Zeichnen von grafischen Primitiven
14.9.3 Zeichnen von Inhalten auf ein JFrame
Stattdessen wählen wir einen anderen Ansatz, der sogar unter AWT eine gute Lösung ist. Wir bilden eine eigene Komponente, eine Unterklasse von JPanel (unter AWT Panel, was wir aber nicht mehr weiter verfolgen wollen), und setzen diese auf das Fenster.
usw.

> Kann ich im nach hinein noch das Layout einfügen?

falls du die Reihenfolge der Befehle im Code meinst, wäre nach setVisible(true) schlecht, davor gehts vielleicht
 

Kakulukiam21

Aktives Mitglied
Habe noch mals eine Frage was mich stutzig macht.

Vorweg, habe das null Layout behalten weil die vorgegebene nicht das erfüllen was ich brauche. Ich muss leider sehr statisch sein.
zB. bei meiner Menüleiste zogen sich die Buttons über die ganze Länge der Menüleiste, bzw hatten immer den selben Abstand ohne das ich was daran ändern konnte und das geht bei mir leider nicht. Ich muss selber bestimmen können, wo was ist und wie groß das ist!...

Bin aber immer noch bei der paint() Methode das sie bei mir immer noch nicht angezeigt wird. Deswegen kleine Frage:

Ist es möglich mit der paint() / paintComponent() - nicht auf dem JFrame direkt zu zeichnen sondern auf ein JPanel, wobei die paint() dann ein einfaches Label wäre?

Desweiteren wundert mich es das ich das JPanel ganz normal mit
Code:
JFrame.add(JPanel);
hinzufügen kann aber er bei
Code:
JFrame.getLayeredPane().add(JPanel, JLayeredPane.DEFAULT_PANE.intValue() +1);
einfach streikt.

Ich kann leider nicht direkt auf das JFrame zeichnen da ich schon ein JPanel als Hintergrund habe, welches dann einfach über der paint() liegt.
 
S

SlaterB

Gast
im JFrame irgendein paint zu überschreiben ist sowieso nicht zu empfehlen,
woanders kannst du natürlich gerne malen bzw. das ist überhaupt der Standard,
was spricht dagegen, wieso fragst du erst?
ohne konkrete Problembeschreibung kann man nichts dazu sagen

> Desweiteren wundert mich [..] einfach streikt.
also mich wundert das nicht bei so einen irren Befehl den ich noch nie gesehen habe,
hoffentlich hast du das irgendwo kopiert, dann stimmen wahrscheinlich andere wichtige Rahmenbedingungen nicht,
ansonsten kann man auch völligen Unsinn dahinter vermuten

mit LayeredPane musst du doch bestimmt nicht arbeiten,
na anderenfalls kann ich jedenfalls dazu eher nichts beitragen
 
Zuletzt bearbeitet von einem Moderator:

Kakulukiam21

Aktives Mitglied
Noch mal die paintComponent Methode:

Java:
public class MilkGraphicFutter extends JLabel {
	Tool help = new Tool();
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	  @Override
	  protected void paintComponent( Graphics g ){
		super.paintComponent(g);
		g.setColor(Color.GRAY);
		g.fillRect(0, 0, 120, 20);

		g.setColor(Color.GREEN);
		g.fillRect(0, 0, 60, 20);
	}

Und ich habe ein Panel wo ich mein Hintergrundbild drauflage
Java:
JPanel bgImage
.

Jetzt möchte ich das dieses JLabel wo ich die diese Kästen zeichne auf dem bgImage laden.


Sollte eigentlich doch mit
Java:
bgImage.add(new MilkGraphicFutter());
funktionieren oder etwa nicht?
 
S

SlaterB

Gast
du kannst doch testen ob es geht oder nicht?,
ich selber könnte es nur mit Mühe testen, müsste noch ein Programm drumherum schreiben,
und bin sowieso skeptisch warum ich diese deine Aufgabe übernehmen sollte ;)

ich habe schon einige Punkte angesprochen die allgemein kritisch bei sowas sein können,
ob es funktioniert läßt sich ohne Restprogramm, wiederum allen 'Rahmenbedingungen' auch gar nicht mit Sicherheit beantworten

zwei Hauptpunkte in Wiederholung:
- in JPanel statt JLabel painten, aber davon bist du ja nicht wegzubekommen..
- ohne setPreferredSize() wird deine paint-Komponente in den meisten Layouts die minimale Größe 1x1 Pixel bekommen, nix zu sehen
(bei null-Layout dann natürlich setBounds())
 

Kakulukiam21

Aktives Mitglied
:p

Ich habe es mit Panel versucht hatte da aber genauso viel Erfolg

- ohne setPreferredSize() wird deine paint-Komponente in den meisten Layouts die minimale Größe 1x1 Pixel bekommen, nix zu sehen

Das schein ich übersehen zu haben. Verständlich das ich dem Panel, wo ich die Paint Methode habe auch eine Größe setzen muss

EDIT: Muss doch in dem Paint Panel gemacht werden oder? ;( Ätzend sowas!
 
S

SlaterB

Gast
wichtig ist dass das Objekt die Eigenschaft, die Größe bekommt, und auch nicht zu spät, je nach Gesamtprogramm,
wer das wo warum auf welche Weise setzt, ist sekundär,
die paint-Methode aber bietet sich ganz gewiss nicht an
 

Kakulukiam21

Aktives Mitglied
SlaterB, ein recht herzliches und riesiges Danke Schön das du trotz meine Unfähigkeit und Dummheit mir geholfen hast (auch wenn du die Geduld verloren hast).

Sollte es sich einrichten können bekommst du ein Bier bzw Kaffe je nachdem :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Problem mit Einfügen von Choice (in ein Applet) aus Paint Java Basics - Anfänger-Themen 13
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
S awt: paint Methode zeigt nichts an Java Basics - Anfänger-Themen 9
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
S Erste Schritte drawOval Problem in Paint Anwendung Java Basics - Anfänger-Themen 1
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
thet1983 start & paint Methode? Java Basics - Anfänger-Themen 0
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
D Wert einer Variable in paint-Methode verwenden Java Basics - Anfänger-Themen 2
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
T Vererbung Wann wird die Methode paint aufgerufen? Java Basics - Anfänger-Themen 4
L Paint() wird scheinbar nicht richtig ausgeführt Java Basics - Anfänger-Themen 8
N aus Container components paint Java Basics - Anfänger-Themen 2
J paint() vs repaint() Java Basics - Anfänger-Themen 3
A Problem mit paint() Java Basics - Anfänger-Themen 2
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
L Erste Schritte Swing oder SWT Paint mit Grafikkarte? Java Basics - Anfänger-Themen 7
T paint() wird nicht aufgerufen Java Basics - Anfänger-Themen 2
K doppeltes paint beim Drucken Java Basics - Anfänger-Themen 8
J paint-methode blockiert settings von JComponents Java Basics - Anfänger-Themen 5
F Eine Frage über paint() Funktion Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
W repaint() ruft paint() nicht auf Java Basics - Anfänger-Themen 9
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
A paint() methode von externer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
V paint funktioniert nicht Java Basics - Anfänger-Themen 14
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
O Paint Programm mit Fehler Java Basics - Anfänger-Themen 2
A Methoden Variablen in paint methode Java Basics - Anfänger-Themen 4
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
S Datentypen Paint Programm Java Basics - Anfänger-Themen 7
M paint-Methode funzt nicht Java Basics - Anfänger-Themen 11
L Paint zeichnet nicht gespeicherte Objekte Java Basics - Anfänger-Themen 3
D OOP paint() Methode aus Unterklasse anstoßen Java Basics - Anfänger-Themen 3
A paint() - warum nicht aufrufen? Java Basics - Anfänger-Themen 3
K Scrollbar - Bild - paint-Methode - zoom Java Basics - Anfänger-Themen 10
S super.paint() Java Basics - Anfänger-Themen 4
S Bild aus paint() Methode auslagern Java Basics - Anfänger-Themen 14
T Etwas an paint()-Methode übergeben? Java Basics - Anfänger-Themen 6
TheKing Paint-Methode aufrufen Java Basics - Anfänger-Themen 14
N paint methode statt Event-Handling-Methode Java Basics - Anfänger-Themen 3
M Paint und JColorChooser Java Basics - Anfänger-Themen 12
G hintergrund wird nicht gezeichnet bei paint() Java Basics - Anfänger-Themen 3
H Paint Methode malt nicht im Panel Java Basics - Anfänger-Themen 4
S Frage zur paint-Methode Java Basics - Anfänger-Themen 3
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
G Nichtstatische Objekte in der paint()-Methode Java Basics - Anfänger-Themen 16
K Wieso wird "paint" nicht ausgeführt ? Java Basics - Anfänger-Themen 2
K JPanel, JFrame, paint() und wo ist mein Viereck ? Java Basics - Anfänger-Themen 19
F Frage zu JPanel und Paint Java Basics - Anfänger-Themen 5
P paint Methode Java Basics - Anfänger-Themen 3
M Problem mit paint() und Container. Java Basics - Anfänger-Themen 8
B Paint(Component) und externe Objekte Java Basics - Anfänger-Themen 6
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
F Applets und die paint-Methode Java Basics - Anfänger-Themen 3
G frage zu paint Java Basics - Anfänger-Themen 3
T Mehrere paint Methoden in unterschiedlichen Klassen Java Basics - Anfänger-Themen 7
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
G Hilfe in paint() ; zeichnen Java Basics - Anfänger-Themen 15
C Einfaches Paint-Programm Java Basics - Anfänger-Themen 9
T .paint() aufrufen Java Basics - Anfänger-Themen 23
S Paint Teilweise Zeitverzögert Java Basics - Anfänger-Themen 6
R paint problem Java Basics - Anfänger-Themen 6
G mit paint() ins JPanel malen. Java Basics - Anfänger-Themen 6
M Auf Panels oder Labels malen? (paint) Java Basics - Anfänger-Themen 9
G repaint in paint aufrufen? Java Basics - Anfänger-Themen 9
V paint()-methode manuell aufrufen? kein autostart erwuenscht Java Basics - Anfänger-Themen 3
7 In Paint keine Schleife? Java Basics - Anfänger-Themen 13
T paint() wieder aus einder anderen methode aufrufen funzt nid Java Basics - Anfänger-Themen 2
G Paint auf Panel Java Basics - Anfänger-Themen 4
G Paint Methode löscht alles Java Basics - Anfänger-Themen 4
S paint() direkt auf JFrame seit 1.5 nicht mehr möglich? Java Basics - Anfänger-Themen 5
A Variablenübergabe in die Paint-Funktion Java Basics - Anfänger-Themen 4
D Zeichnen mit Paint zerstört ganzes Fenster Java Basics - Anfänger-Themen 5
G Klassen und paint methode Java Basics - Anfänger-Themen 2
T paint() ohne konstruktor aufzurufen? Java Basics - Anfänger-Themen 5
P paint() Java Basics - Anfänger-Themen 6
U paint Java Basics - Anfänger-Themen 8
X Malen außerhalb der paint() Methode Java Basics - Anfänger-Themen 4
C zu viele paint()'s. Java Basics - Anfänger-Themen 6
G Zeichnen ausserhalb der paint Methode Java Basics - Anfänger-Themen 4
V Problem mit der Anzeige einer paint-Methode in einem Panel Java Basics - Anfänger-Themen 2
N Probleme mit paint() bei Implementierung in ein Panel Java Basics - Anfänger-Themen 4
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
D von paint() und repaint() im Applet Java Basics - Anfänger-Themen 4
C Ausgaben mit der Paint-Methode Java Basics - Anfänger-Themen 5
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben