Erste Schritte Mit repaint() ist Label nicht sichtbar

JavaUndC-Prog

Bekanntes Mitglied
Hallo,
ich habe mich mal wieder versucht etwas in Java einzuarbeiten. Ich versuche gerade mir ein Label und eine 2D Grafik anzeigen zu lassen. Ursprünglich war geplant, dass zwei Punkte auf einer Linie hin und her wandern, das ist auch noch das Ziel. Ich habe jetzt Spaßeshalber mal ein Label hinzugefügt und geschaut was nun passiert. Mein Problem ist, dass wenn ich diese repaint() Funktion nutze, sich meine Grafik verschiebt, das soll sie auch. Das Label ist dann allerdings nicht sichtbar.

Kann mir vllt. Jemand sagen, woran das liegt und wie das bestenfalls behoben werden kann?
Für die Spätere Implementierung brauche ich vllt gar kein Label mehr, mich interessiert das einfach nur, warum das jetzt nicht so funktioniert :)

LG

Hier einmal der Code:
Java:
import java.awt.*;
import java.util.*;
import javax.swing.*;

public class Test_Case2 extends JPanel {
   
       

    static Graphics2D g3;
    public void paint(Graphics g){
        super.paint(g);
        g.setColor(Color.black);
        g.drawOval(45, 145, 40, 40);
        g.fillOval(55, 155, 20, 20);
       
        g3 = (Graphics2D) g;
        g3.setColor(Color.BLUE);
        g3.setStroke(new BasicStroke(wifth));
        g3.drawLine(wifth, 80, 80, 90);   
       
        repaint();
    }
   
    static int wifth = 1;
    public static void test(){
        new java.util.Timer().schedule(new TimerTask(){
            @Override
            public void run() {
                System.out.println("Executed..." + wifth);
                wifth = wifth +10;
                label.setText("Executed..." + wifth);
                //g3.setStroke(new BasicStroke(wifth));
               
               
            }
           
        },1000,1000);
    }
    static JLabel label;
    public static void main(String[] args){
        Test_Case2 t = new Test_Case2();
        JFrame meinFrame = new JFrame();
        meinFrame.setTitle("Test");
        meinFrame.setSize(500, 500);
        label = new JLabel();
        label.setText("fdf");
        label.setBounds(10, 200, 200, 203);
        meinFrame.add(label);
        meinFrame.add(t);
        meinFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        meinFrame.setVisible(true);
        test();
    }
}
 
X

Xyz1

Gast
Was soll gezeichnet werden? :oops: Verstehe nur die hälfte der beschreibung.

paint ruft repaint auf, wenigstens das ist falsch. :confused:
 

JavaUndC-Prog

Bekanntes Mitglied
Ich formuliere es mal so, ich möchte einen Punkt (bzw mehrere) von rechts nach links bewegen und ein Label anzeigen, welches die Position anzeigt :)
Danke :)
 

truesoul

Top Contributor
Hallo

Und Google kann da nicht helfen?
Zum Beispiel die Suche nach "java draw graphics on jpanel" liefert brauchbare Ergebnisse.

Grüße
 

Harry Kane

Top Contributor
Ein JFrame bzw. dessn content pane hat standardmäßig ein BorderLayout als LayoutManager. Wenn zum content pane einfach mit add() neue Komponenten hinzugefügt werden, landen die alle in BorderLayout.CENTER, und nur die zuletzt hinzugefügte Kompoente ist sichtbar, weil sie alle andere überdeckt.
Lösung: ersetze meinFrame.add(label); durch meinFrame.add(label, BorderLayout.NORTH);
 

JavaUndC-Prog

Bekanntes Mitglied
Danke für eure Antworten! Also "meinFrame.add(label, BorderLayout.NORTH);" zeigt das Label zwar an, jedoch kann ich die Position nun nicht beeinflussen. Was ich vorhabe versuche ich mal kurz zu erläutern. Ich zeichne ein Dreieck aus mehreren Punkten und möchte dann eine Achsenbeschriftung vornehmen :)
 

JavaUndC-Prog

Bekanntes Mitglied
Ah das ist cool, das kannte ich noch nicht! Danke für den Hinweise! :)
Dann ist das doch hoffentlich einfacher als gedacht (Weil das mit dem Label einfach zu komisch war...). Den Text kann ich aber dann auch dynamisch anpassen oder? Also mal angenommen ich habe einen Timer und zähle hoch, sodass sich der Text dort auch ändert?
 
X

Xyz1

Gast
Kannst du bitte nochmal genau beschreiben, was gezeichnet werden soll, was animiert werden soll, was Dein Problem ist und auch nicht meine Anmerkung ignorieren, repaint nicht in paint aufzurufen? Ginge das? Wenn nicht bin ich raus aus dem Thema. Dann antworte ich vielleicht nächstes Jahr mal und Du musst dich mit den sonstigen Antworten begnügen.
 

JavaUndC-Prog

Bekanntes Mitglied
Also die Problembeschreibung:

Ich möchte mir zwei Punkte zeichnen lassen, diese sollen mit einer Linie verbunden werden. Auf der Linie soll ein Kreis von links nach rechts fahren. Die Linie soll auch eine Beschriftung haben. Ich habe das mal als Grafik eingefügt, was ich verwirklichen möchte. Mein Problem war bzw. ist nach wie vor, dass mir mein Programm zwar die 2D Grafiken anzeigen kann, aber wenn ich jetzt beispielsweise Steuerungselemente in Form von Button und Labels einbringen, dass diese dann nicht angezeigt werden... Einen Button z.b. um das ganze "manuell" zu starten :)

Ich würde das sehr gerne in Java machen wollen, eine alternativ Implementierung in C# habe ich auch schon versucht, da scheint das irgendwie leichter zu sein, ich habe dort dann alle 2D Grafiken (Punkte, Linien) in ein Panel "geschmissen" und die Steuerungselemente mit dem GUI Builder platziert.

Ich hoffe, dass diese Beschreibung jetzt in Ordnung ist ? :)
 

Anhänge

  • grad.png
    grad.png
    2,4 KB · Aufrufe: 21

JavaUndC-Prog

Bekanntes Mitglied
JA, ok das es kompliziert ist, habe ich mir schon fast gedacht :(
Mit einem Layoutmanager könnte ich ein Layout festlegen, ist es dann möglich die Objekte "besser" zu positionieren? Mal angenommen ich nehme ein Grind Layout, dann wäre jetzt meine Idee, den ersten Teil des Grids für Button und Co zu nutzen und den Rest für die Grafik Elemente, würde das vllt funktionieren? Ich finde es gerade sehr schade, dass das nicht so einfach ist, weil diesen use-case 2D Grafiken und Button hat man doch eigentlich häufig? Oder ist das einfach schlechtes Design?
 

Harry Kane

Top Contributor
ist es dann möglich die Objekte "besser" zu positionieren?
Wenn du mit "Objekten" JComponents meinst, dann ja. Grafische Symbole lassen siuch damit nicht positionieren.
Mal angenommen ich nehme ein Grind Layout, dann wäre jetzt meine Idee, den ersten Teil des Grids für Button und Co zu nutzen und den Rest für die Grafik Elemente, würde das vllt funktionieren
Nein. Ein GridLayout teilt jeder Komponente ein gleich große Fläche zu.
Mir ist nicht ganz klar, woran es denn hakt. Wenn du JButtons (z. B. zum Starten) zusammen mit der Zeichenfläche (einem JPanel) anzeigen willst, kannst du z. B. das JPanel in einem BorderLayout.CENTER platzieren, und die JButtons in ein JPanel packen, was du dann in BorderLayout.NORTH packst. Wenn du Text an einer beliebigen Position in der Zeichenfläche zeichnen möchtest, geht das mit der drawString-Methode in der überschriebenen paintComponent der Zeichenfläche.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Wenn ich repaint(); mache, flackert es so stark, das man fast nichts erkennen kann. Java Basics - Anfänger-Themen 11
S Repaint() Java Basics - Anfänger-Themen 1
S Repaint() in der Schleife funktioniert nicht immer Java Basics - Anfänger-Themen 5
H Graphics / repaint Java Basics - Anfänger-Themen 8
D Verhindern das repaint beim vergrößern aufgerufen wird Java Basics - Anfänger-Themen 9
M Liste mit repaint aktualisieren Java Basics - Anfänger-Themen 1
E Probleme mit repaint() Java Basics - Anfänger-Themen 15
K Erkennt repaint nicht Java Basics - Anfänger-Themen 1
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
1 repaint() Funktion erzeugt Flackern Java Basics - Anfänger-Themen 33
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
G Problem mit repaint() Java Basics - Anfänger-Themen 2
J repaint() geht gar nicht; GUI aktualisieren Java Basics - Anfänger-Themen 10
J paint() vs repaint() Java Basics - Anfänger-Themen 3
C repaint wird nicht während Druck auf Maustaste ausgeführt. Java Basics - Anfänger-Themen 4
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
P [JTable] Problem mit repaint() Java Basics - Anfänger-Themen 2
P Interpreter-Fehler Im for loop funkzioniert repaint nicht :( Java Basics - Anfänger-Themen 4
M repaint() in run-Methode funktioniert nicht Java Basics - Anfänger-Themen 9
O Probleme mit der repaint-Funktion Java Basics - Anfänger-Themen 6
W repaint() ruft paint() nicht auf Java Basics - Anfänger-Themen 9
J repaint() funktioniert nicht wie gewünscht Java Basics - Anfänger-Themen 30
I Hangman CardLayout/repaint? Java Basics - Anfänger-Themen 2
H Variablen Probleme mit repaint() Java Basics - Anfänger-Themen 2
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
J repaint(); launisch ? Java Basics - Anfänger-Themen 3
E Altes Bild bei repaint() löschen? Java Basics - Anfänger-Themen 10
Z Wie repaint() bei Uhr realisieren? Java Basics - Anfänger-Themen 12
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
I repaint bei jpanel Java Basics - Anfänger-Themen 10
T repaint wir nicht mehr geöffnet! Java Basics - Anfänger-Themen 38
T Canvas aktualisierung mit repaint Java Basics - Anfänger-Themen 5
C GUI aktualisieren: repaint, validate, Fenstergröße ändern bringt nichts Java Basics - Anfänger-Themen 13
Antoras Swing repaint und Nullpointer Java Basics - Anfänger-Themen 6
O repaint() wird nicht ausgeführt Java Basics - Anfänger-Themen 3
S problem mit repaint() in Thread Java Basics - Anfänger-Themen 6
Antoras swing und repaint-Ersatz Java Basics - Anfänger-Themen 8
G Automatischer repaint bei Swing so wie bei AWT? Java Basics - Anfänger-Themen 7
M Problem mit repaint Java Basics - Anfänger-Themen 2
R Probleme beim Repaint Java Basics - Anfänger-Themen 3
T repaint einer komponente Java Basics - Anfänger-Themen 2
E repaint() aufrufen Java Basics - Anfänger-Themen 12
F paintComponent mit repaint() aufrufen Java Basics - Anfänger-Themen 27
kulturfenster Probleme mit repaint() Java Basics - Anfänger-Themen 2
S SelectionListener + repaint().Verständnisproblem ;) Java Basics - Anfänger-Themen 7
K Repaint() in Methode Java Basics - Anfänger-Themen 13
G Frage zu repaint() Java Basics - Anfänger-Themen 5
D JPanel repaint() wird nicht gemacht! Java Basics - Anfänger-Themen 7
B Problem mit repaint() Java Basics - Anfänger-Themen 8
V Reihenfolge von Befehlen - hier repaint() zu spät Java Basics - Anfänger-Themen 13
G repaint in paint aufrufen? Java Basics - Anfänger-Themen 9
F repaint() - Methode verzögern lassen? Java Basics - Anfänger-Themen 3
I Erst repaint() dann zeichnen? Java Basics - Anfänger-Themen 6
D von paint() und repaint() im Applet Java Basics - Anfänger-Themen 4
J probleme mit repaint Java Basics - Anfänger-Themen 2
rafi072001 Assoziation zwischen Musiker und Label Java Basics - Anfänger-Themen 1
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
J Java FX - Label aktualisieren Java Basics - Anfänger-Themen 1
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
S Counter Label Button Java Basics - Anfänger-Themen 4
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
V Label-Problem Java Basics - Anfänger-Themen 4
H Stringanzeige in einem Label Java Basics - Anfänger-Themen 2
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
KeVoZ_ Label auf JFrame willkürlich Positionieren Java Basics - Anfänger-Themen 2
N Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon Java Basics - Anfänger-Themen 1
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
V Die die aktuelle Größe zusätzlich in einem Label angezeigt wird Java Basics - Anfänger-Themen 11
T Erste Schritte 2 Codes zusammen fügen / Label in JFrame Java Basics - Anfänger-Themen 1
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
S Label Wert zuweisen Java Basics - Anfänger-Themen 8
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
S Label in Vordergrund Java Basics - Anfänger-Themen 4
G GUI Label Werte ersetzen Java Basics - Anfänger-Themen 25
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
W GUI Label, ComboBox Java Basics - Anfänger-Themen 4
M BufferedReader => TextField/Label Java Basics - Anfänger-Themen 8
M Ausgabe einer ArrayList auf einem Label Java Basics - Anfänger-Themen 4
W Java label nicht ansprechbar Java Basics - Anfänger-Themen 7
T Icon eines Label speichern Java Basics - Anfänger-Themen 9
J Uhr:Label aktuallisieren Java Basics - Anfänger-Themen 7
J Zeichen für Durchmesser Ø in Label darstellen Java Basics - Anfänger-Themen 15
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
C Panel und Label überdecken sich Java Basics - Anfänger-Themen 2
L Label + MouseListener Java Basics - Anfänger-Themen 12
P Label Array in mouseEntered vergleichen Java Basics - Anfänger-Themen 4
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
C Aktueller Wert von einem JSlider auf ein Label Java Basics - Anfänger-Themen 2
J "label.setText" funktioniert nicht Java Basics - Anfänger-Themen 9
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
K Werte von 2 Klassen austauschen/ Bild im Label ändern Java Basics - Anfänger-Themen 12
R Text vom Label ändern Java Basics - Anfänger-Themen 14
D Vererbung ProcessBar mit einem Label Java Basics - Anfänger-Themen 4
W Anordnung von Label und Button Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben