Swing - ich sehe keine Linie, andere schon

Status
Nicht offen für weitere Antworten.

Jay1980

Bekanntes Mitglied
Servus,

ich bin echt genervt, das kostet nun schon sehr viel Zeit.

Also, das übliche Spiel, irgendwas passt nicht, dann kreis ich den Fehler ein und lese in meinen Büchern oder im Netz nach - wenn es dann nach diversen Versuchen immer noch nicht klappt, dann land ich im IRC-Channel zu java. Jetzt hat sich herausgestellt, dass der Code bei mir nicht geht, beim andern aber schon.

Also hier ist der Code und ich kann mir nicht erklären, warum ich da keine Rote Linie sehen kann. Ich nutze Easyeclipse in der Version 1.3.1.1 und habe nun das auch mal mit Eclipse 3.4.2 versucht, das gleiche. Als Betriebssystem nutze ich Ubuntu 8.04, ich nutze das Eclipse nicht aus den Ubuntu-Repositories, sondern den Download von der eclipse-Website.

Meine einzige Vermutung ist, dass dieses Malen, also das graphics-Objekt nicht von der von mir überschriebenen paintComponent()-Methode genommen werden kann, anders kann ich mir das nicht erklären?

Hier ist der Code, das f.setLayout(null) habe ich schon mal auskommentiert, mal nicht. Danke wenn einer mal drüberschaut oder es zu sich in einen Workspace wirft - ich bin mit meinem Latein am Ende!:
Code:
import java.awt.*;
import javax.swing.*;
 
public class JobaTestPainter extends JComponent {
 
	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);
 
		g.setColor(Color.red);
		g.drawLine(10, 50, 200, 100);
	}
 
	public static void main(String[] args)
	{
		JobaTestPainter jtp = new JobaTestPainter();
		JFrame f = new JFrame("Testzeichenflaeche");
		f.setLayout(null);
		Dimension dim = new Dimension( 500, 500 );
		f.setSize(dim);
		f.add(jtp);
		f.repaint();
		f.setVisible(true);
	}
}
 

Marco13

Top Contributor
Also das setLayout(null) sollte man eigentlich nicht machen - und wenn, dann muß man danach die Größe des "jtp" explitiz angeben (mit setBounds).

Ansonsten gibt's nicht sooo viele Gründe, die mir da einfallen würden. Erscheint die Linie hier?
Code:
import java.awt.*;
import javax.swing.*;

public class JobaTestPainter extends JComponent {

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        System.out.println("paint");
        g.setColor(Color.red);
        g.drawLine(10, 50, 200, 100);
    }

    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                JobaTestPainter jtp = new JobaTestPainter();
                JFrame f = new JFrame("Testzeichenflaeche");
                Dimension dim = new Dimension( 500, 500 );
                f.setSize(dim);

                f.getContentPane().setLayout(new GridLayout(1,1));
                f.getContentPane().add(jtp);


                f.setVisible(true);
            }
        });
    }
}
 

hdi

Top Contributor
Marco13 hat Recht, deine JComponent ist 0 pixel gross, weil du ihr keine Grösse gegeben hast.
Lass mal einfach das setLayout(null) weg, dann wird es gehen weil sich die JComponent dann eine passende Grösse raussucht. Und "passend" heisst immer: Ich will soviel ich kriegen kann ;)

Das f.repaint() ist übrigens auch überflüssiger Code. Erstmal rufst du das vor dem setVisib le(true) auf, was immer zu einer Sache führt: Nichts..
und zweitens wird repaint() automatisch aufgerufen bei setVisible(true), also auch danach kannste es dir sparen.

Warum dein Code angeblich bei jmd anderem funktioniert hat... Komisch :bahnhof:
 

Wildcard

Top Contributor
Lass mal einfach das setLayout(null) weg, dann wird es gehen weil sich die JComponent dann eine passende Grösse raussucht. Und "passend" heisst immer: Ich will soviel ich kriegen kann ;)
Nein. Nicht die JComponent sucht sich die Größe raus, der LayoutManager setzt sie. Der LayoutManager kann sich dabei an getPreferredSize orientieren. Für eine leere JComponent ist dieser Wert allerdings 0,0.
 

hdi

Top Contributor
Aber ist der LayoutManager nicht "null"? Ich dachte in diesem Fall gibt es einfach keine Instanz, die sich überhaupt um irgendwas kümmert. Wenn die Komponenten dass nicht selbst sagen (setSize), haben sie halt Pech und sind 0,0. Ich dachte auch wenn sie zB einen Inhalt haben?!

edit: Bisschen aneinander vorbei geredet... wenn man setLayout(null) weglässt, gibt es einen LayoutManager, schon. Also wenn preferredSize nicht gesetzt ist, dann ist das doch die volle Grösse oder?
 

Jay1980

Bekanntes Mitglied
Danke erstmal für die Anmerkungen, die Geschichte ist etwas verzwickt, aber wenn es einmal geschnaggelt hat, dann wird das schon was werden. Gut ich habe nun die Linie in dem Codeschnippsel was ich erhalten habe auch gesehen und in dem Codeschnippsel von dir sehe ich die Linie auch.

Der andere Code ist das hier:
Code:
package jobatestapp;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JComponent;
import javax.swing.JFrame;


@SuppressWarnings("serial")
public class JobaTestPainter extends JComponent {

	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);

		g.setColor(Color.red);
		g.drawLine(10, 50, 200, 100);
	}

	public static void main(String[] args)
	{
		final JobaTestPainter jtp = new JobaTestPainter();
		final JFrame f = new JFrame("Testzeichenflaeche");
		f.setSize(500,500);
		f.add(jtp);
		f.setVisible(true);
	}
}
 

hdi

Top Contributor
Jo, und noch besser jetzt:

[HIGHLIGHT="Java"]public static void main(String[] args)
{
final JobaTestPainter jtp = new JobaTestPainter();
jtp.setPreferredSize(new Dimension(500,500));
final JFrame f = new JFrame("Testzeichenflaeche");
f.add(jtp);
f.pack();
f.setVisible(true);
}[/HIGHLIGHT]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
Damtonix BufferStrategy flackert (Swing) AWT, Swing, JavaFX & SWT 9
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
D Swing in Kombination mit JGraphX und JGraphT AWT, Swing, JavaFX & SWT 0
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
S Java Swing Print() method AWT, Swing, JavaFX & SWT 4
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
S Manuelles Menu in Swing AWT, Swing, JavaFX & SWT 3
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
Java_RY Bin Ratlos bzgl Malen in Swing AWT, Swing, JavaFX & SWT 5
offi Swing Shuttle List AWT, Swing, JavaFX & SWT 9
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
M Swing Swing-Widgets und paintComponent() AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
K eigener button in swing AWT, Swing, JavaFX & SWT 3
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
windl Bufferstrategy in Swing nachstellen AWT, Swing, JavaFX & SWT 0
M Kamera in Java Swing einbinden AWT, Swing, JavaFX & SWT 4
Z Swing Swing und die Progressbar AWT, Swing, JavaFX & SWT 1
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
RalleYTN Swing JavaFX VideoPlayer in Swing einbetten. Ich komm nicht an die Dimension des Videos! AWT, Swing, JavaFX & SWT 0
T swing läuft nur beding flüssig AWT, Swing, JavaFX & SWT 1
A Sonderzeichen bei Swing AWT, Swing, JavaFX & SWT 3
L DoubleBuffering unter Swing AWT, Swing, JavaFX & SWT 0
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
N JavaFX Umstieg von Swing auf Java FX AWT, Swing, JavaFX & SWT 6
J GUI Anfänger einfaches Program AWT, Swing, JavaFX & SWT AWT, Swing, JavaFX & SWT 3
M Swing Grundlegende Frage zu SWING mit WindowBuilder AWT, Swing, JavaFX & SWT 11
M Plugin oder eigenes Tool mit zB SWING AWT, Swing, JavaFX & SWT 2
Z Java-Swing : JComponent AWT, Swing, JavaFX & SWT 2
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
N JComboBox in JTable [Swing] -> totaler UI-Einsteiger AWT, Swing, JavaFX & SWT 3
T Swing Kompatibilitätsproblem zwischen Swing und JavaFX AWT, Swing, JavaFX & SWT 4
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
T Swing / Kreis zeichnen AWT, Swing, JavaFX & SWT 2
S (Swing)Vollbild anzeigen unter Linux/Mac AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben