kriege kein paint

Status
Nicht offen für weitere Antworten.

zahil

Mitglied
hallo zussamen,

ich habe ein gui der cardalyout besizt. auf ein card habe ich ein button panel mit 9 buttons. und auf derselbe card habe ich ein animation (analog uhr).

ich will dass beim klicken eines buttons, ein punkt auf dem button gemalt wird. dafür habe ich ein test code geschreiben, und die läuft :-

Code:
public class GlassPane extends JPanel implements ActionListener{
            Object s;
         
         public GlassPane(AbstractButton aButton, Container contentPane) {             
             setVisible(true);
             //addActionListener(this);
             //this.repaint();
         }
         
         public void actionPerformed(ActionEvent i){
            Object s = i.getSource();
            setPoint(s);
            //this.repaint();
         }  
         
         public void setPoint(Object s){ 
                    if (s == b5) {
                       if(status[0] == false){
                          int x = (b5.getX() + b5.getWidth() - 4);
                          int y = (b5.getY() + b5.getHeight() - 2);
                          System.out.println (x + ":" + y);
                       }//*else{ x = 0;
                       y = 0; }//*
                    //}
                    this.repaint();
         }
             
         public void paintComponent(Graphics g){
                if(x != 0){
                     if (y != 0){
                        g.setColor(Color.red);
                        g.fillOval(x, y, 20, 20);
                     }   
                }
         }
       }

dass problem ist dass ich über haupt kein punkt auf dem button kriege.....weisst jemand warum?
ich hab den glass pane mit frame.setGlassPane(glasspane) gesetzt und dem richtig instanciert....
 
S

SlaterB

Gast
zunächst mal solltest du ohne Button arbeiten und nur versuchen,
in paintComponent einen Kreis zu malen, mit vorgegebenen x und y, Testwerten,
klappt das?


--------

woher kommen eigentlich die x und y in paintComponent,
sind das Exemplarvariablen, kompiliert das korrekt?

in der Operation setPoint definierst du jedenfalls LOKALE x und y,
diese werden nicht als Exemplarvariablen gespeichert oder ähnliches,
haben auf paintComponent demnach keine Auswirkung
 

zahil

Mitglied
ich habe test werte angegeben statt variabln, dass geht auch nicht.....

ja, die waren als lokale variablen definiert, mein fehler, aber habs korrigiert, aber immer noch keine wirkung. die sind jetzt als emxemplar definiert, aber immer noch kein kries.
 
S

SlaterB

Gast
wie gesagt: der Button interessiert kein Stück,
male erstmal so einen Kreis, von Anfang an in paintComponent hart reincodiert

geht das?


------

wenn nicht oder am besten trotzdem:
poste ein vollständiges Programm, fehlt ja wohl nur noch ein JFrame durmherum, 20 Zeilen mehr..,
dann kann man erkennen, ob du das GlassPane vielleicht falsch einbaust

oder ist das ein ganz normales JPanel?
setze erstmal eine Hintergrundfarbe/ einen Rahmen um das JPanel,
ist dieses überhaupt zu sehen?
 

zahil

Mitglied
na gut, aber der button funktionirt, guck mal in dem method setPoint habe ich system.out.println geschrieben, dass gibt eint output wenn der button gedruckt ist., nur dass kries wird nicht gemalt.

ich hab jetzt dass ganze als ein thread geschrieben. und ein system.out.println in paint auch programiert, aber ich kriege kein output davon.

warum springt dass program zum paint() methode nicht?

glasspane instansiert :
Code:
 PCGUI(JFrame f) {
             controllingFrame = f;
             pane = new JPanel(new BorderLayout());
             f.setContentPane(pane);
             pane.setOpaque(true);
             gp = new GlassPane(b5, c2);
             f.setGlassPane(gp);

c2 ist der card darauf der glasspane malen sollte.

und jetzt class GlassPane

Code:
public class GlassPane extends JPanel implements Runnable, ActionListener{
        int x, y;
        Graphics screen;   
             
         public GlassPane(AbstractButton aButton, JPanel t) {             
             setVisible(true);
         }
         
         public void actionPerformed(ActionEvent i){
           s = i.getSource();
            if (s == b5) {
               Thread laufer = new Thread(this);
               laufer.run();
            }
         }
         
         public void run(){
                setPoint(s);
                paint(screen);
         }  
         
         public void setPoint(Object s){ 
                    if (s == b5) {
                       if(status[0] == false){
                          x = (b5.getX() + b5.getWidth() - 4);
                          y = (b5.getY() + b5.getHeight() - 2);
                          System.out.println(x + ":" + y);
                       }else{ x = 0;
                       y = 0; }
                    }
         }
             
         public void paint(Graphics screen){
                if(x != 0){
                     if (y != 0){
                        screen.setColor(Color.red);
                        screen.fillRect(x, y, 20, 20);
                        System.out.println(x + ":" + y);
                     }   
                }
         }
       }
 
S

SlaterB

Gast
ich persönlich werde mir das schon aus Prinzip nicht anschauen,
poste ein einfaches übersichtliches Programm, das den Fehler enthält,

siehe letztes Post in diesem Thread hier für ein Beispiel
http://www.java-forum.org/de/viewtopic.php?t=37640

60 Zeilen, voll lauffähig,
alles andere an Layout und Funktionalität interessiert nicht
 
A

Azrahel NA

Gast
SlaterB hat gesagt.:
ich persönlich werde mir das schon aus Prinzip nicht anschauen

Wieso. er hat doch absolut genau gemacht was du wolltest :)

@zahil Bau ein KSKB (Kurzes Selbständiges Kompilierbares Beispiel), erstens findest du den Fehler dabei vielleicht schon selbst, zum zweiten wird sich echt keiner, so lieb die Jungs hier auch sind, den Akt machen sich durch 693 Zeilen Code durchzubeissen, außer du läßt mal mindestens nen Kasten dafür springen, das ist nämlich auch für die JavaGötter hier echt Arbeit :wink:
 

zahil

Mitglied
ok, alles was für glasspane wichtig ist....

ich versuche auch ein kskb zu bauen, bis dann könnte ihr dass ansehen
 
S

SlaterB

Gast
so, habs auch mal selber versucht,
gar nicht leicht, ein GlassPane zum Laufen zu bekommen,

es darf erst nach dem JFrame auf visible gestellt werden..,

und du solltest nie thread.run() aufrufen ;)
dann wird nur die Operation aufgerufen, kein eigener Thread gestartet, dafür gibts thread.start()


und allgemein lieber paintComponent statt paint verwenden
Code:
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestGUI extends JFrame {

	public TestGUI() throws Exception {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		MyGlassPane gp = new MyGlassPane();
		setGlassPane(gp);
		setSize(200, 200);
		setVisible(true);
		gp.setVisible(true);
	}

	public static void main(String[] args) throws Exception {
		new TestGUI();
	}

}

class MyGlassPane extends JPanel implements Runnable {
	int x, y;

	public MyGlassPane() {
		Thread laufer = new Thread(this);
		laufer.start();
	}

	public void run() {
		while (true) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			x = (int) (Math.random() * 100 + 20);
			y = (int) (Math.random() * 100 + 20);
			repaint();
		}
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		System.out.println(x + ":" + y + " p ");
		if ((x != 0) && (y != 0)) {
			g.setColor(Color.red);
			g.fillRect(x, y, 20, 20);

		}
	}
}
 

Azrahel

Bekanntes Mitglied
Cool Slaterb, ich wusst garnicht das man das auch auf der GlassPane machen kann, ich hab mir da immer einen auf der ContentPane abgebrochen. Werd ich direkt mal vermerken müssen :) :applaus:
 
S

SlaterB

Gast
ähm, was kann man denn da 'machen', malen? ;)
also das hätte ich schon vermutet, obwohl ich das auch noch nie gemacht hatte
 

zahil

Mitglied
es tut mir leid, aber es geht dass nicht, sobald man gp.setvisible macht, blödeweise kann man nichts durch den glass pane sehen...keine andere componenten und containers
 
S

SlaterB

Gast
tztz, behaupte ich dass es geht? ;)

ich behaupte nur dass man da einen Kasten malen kann wenn man das ganze ordentlich programmiert,

vielleicht fehlt setOpaque(true/ false)



vielleicht machst du es so wie es in einem TUTORIAL steht,
bevor du dir da selber was bastelst
http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html

dort ging das glaube ich, da wird JComponent statt JPanel für das GlassPane genommen,
und dann muss wohl das
super.paintComponent(g);
aus
public void paintComponent(Graphics g)
raus

(ich schaue nur wie es dort geht, frage nicht mich nach den genauen Details)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
T SWT Wie kriege ich die Position des Textfeldes raus? AWT, Swing, JavaFX & SWT 19
A Ich kriege die Grössen einfach nicht auf die Reihe! AWT, Swing, JavaFX & SWT 6
N imageIcon zeigt kein Bild an AWT, Swing, JavaFX & SWT 5
P kein Scrollen nach affinertransformation bei mouse dragged AWT, Swing, JavaFX & SWT 2
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
F Kein JavaFX mehr im Eclipse Wizard AWT, Swing, JavaFX & SWT 1
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
cool_brivk24 Swing ImageIcon lädt kein Bild AWT, Swing, JavaFX & SWT 12
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
C JavaFX ProGuard -> TableView kein Inhalt AWT, Swing, JavaFX & SWT 7
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
krgewb Kein src-Verzeichnis AWT, Swing, JavaFX & SWT 1
A Swing CardLayout - kein Wechsel möglich AWT, Swing, JavaFX & SWT 5
Wurstkopp JavaFX JavaFX KeyEvent kein Zahlencode um unbekannte Mediatasten auszuwerten? AWT, Swing, JavaFX & SWT 0
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
S Kein JFrame unter Mac? AWT, Swing, JavaFX & SWT 8
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
Seikuassi Swing JTextField nimmt kein Einfügen (Strg+V) an AWT, Swing, JavaFX & SWT 4
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
M Kein Zeichnen der Figuren auf JPanel AWT, Swing, JavaFX & SWT 4
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
S Kein DnD in allen Java Applikationen AWT, Swing, JavaFX & SWT 5
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
R Bitte kein Menü bei F10 AWT, Swing, JavaFX & SWT 9
M Kein resize nach Component.setVisible() AWT, Swing, JavaFX & SWT 2
T AWT Graphics G Kein Text erscheint warum? AWT, Swing, JavaFX & SWT 12
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
M Swing JMenu verdeckt durch Komponente (aber kein AWT und Swing mix!?) AWT, Swing, JavaFX & SWT 3
P EDT Problem? Kein Aufruf der repaint Methode AWT, Swing, JavaFX & SWT 6
H TextArea zeigt kein Text an AWT, Swing, JavaFX & SWT 6
Y Kein GantChart in einem GridLayout AWT, Swing, JavaFX & SWT 5
D Event in Fenster ausgeben + Observer + kein Plan AWT, Swing, JavaFX & SWT 2
D JTable während edit kein update machen lassen AWT, Swing, JavaFX & SWT 2
M Swing Kein update bei simulierten HTML-Link AWT, Swing, JavaFX & SWT 4
S JTable erlaubt kein Komma um Dezimazahlen einzugeben..? AWT, Swing, JavaFX & SWT 2
S Swing jTextPaine kein Zeilenumbruch nach setText() AWT, Swing, JavaFX & SWT 9
hdi Swing EDT macht kein repaint() AWT, Swing, JavaFX & SWT 2
T Editable ComboBox / kein Weiterspringen AWT, Swing, JavaFX & SWT 12
Spin Innere Klasse : kein static? AWT, Swing, JavaFX & SWT 8
G jpanel macht kein repaint AWT, Swing, JavaFX & SWT 2
V Kein Fokus für Key Bindings auf JPanel bzw JApplet AWT, Swing, JavaFX & SWT 2
G CellEditor - Kein "Textfeld" AWT, Swing, JavaFX & SWT 6
N JCalendar - Kein Datum auswählen AWT, Swing, JavaFX & SWT 3
E Hat Netbeans unter Linux kein Designer für Swing? AWT, Swing, JavaFX & SWT 3
@ JPanel: kein paintComponent() trotz repaint() AWT, Swing, JavaFX & SWT 4
W Kein MouseKlick-Event bei Bewegung AWT, Swing, JavaFX & SWT 2
B Finde kein PrintService der das Attribut PageRanges annimmt AWT, Swing, JavaFX & SWT 22
B [JTable] kein Sortieren der versteckten Columns AWT, Swing, JavaFX & SWT 9
B kein MouseEvent bei zu schneller Bewegung der Maus AWT, Swing, JavaFX & SWT 7
N Threads kein neues Fenster erzeugen lassen AWT, Swing, JavaFX & SWT 4
A Komponente entfernen. Kein neuzeichnen nach validate() AWT, Swing, JavaFX & SWT 2
technolion FileDialog/keine Multi-Selektion vs. JFileCHooser/kein LaF AWT, Swing, JavaFX & SWT 2
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
M Problem mit verschachtelten Events und kein ausweg in sicht AWT, Swing, JavaFX & SWT 3
B Kein Repaint während eines Prozesses. AWT, Swing, JavaFX & SWT 5
O JScrollPane beinhaltet JPanel mit null Layout kein Scrollen AWT, Swing, JavaFX & SWT 3
K jTable - kein repaint? AWT, Swing, JavaFX & SWT 9
D JDialog: kein Icon nach setResizeable(false) AWT, Swing, JavaFX & SWT 5
K Kein Header in JTable ! AWT, Swing, JavaFX & SWT 8
S Mouselistener erzeugt kein Event in einem Menuitem AWT, Swing, JavaFX & SWT 2
J Tabelle zeigt kein Header AWT, Swing, JavaFX & SWT 5
A Ich kann kein JInternalFrame anzeigen ! AWT, Swing, JavaFX & SWT 7
G für showInputDialog kein eigenes Icon auswählen AWT, Swing, JavaFX & SWT 6
R JTextField - setBackground - kein Effekt AWT, Swing, JavaFX & SWT 5
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

Ähnliche Java Themen

Neue Themen


Oben