Durch DrawLine verschwindet das Fenster und die Objekte

Status
Nicht offen für weitere Antworten.

Xclipse

Aktives Mitglied
Hallo,

wie der Titel schon sagt:

Durch DrawLine verschwindet das Fenster und die darin enthaltene Objekte

public void paint(Graphics g) {
// Rote Linie zeichnen
g.setColor (Color.RED);
g.drawLine(10, 200, 200, 200);
g.drawLine(10, 200, 200, 200);
}

Folgendes problem habe ich:

In einem JInternalFrame habe ich einen JPanel.
In diesem JPanel habe ich einen GridLayout, aufgeteilt in 3X GridBagLayouts.

Ich möchte 2 Linien Zeichnen, sobald ich das JInternalFrame über das HauptProg. aufrufe,
werden nur diese Linie angezeigt und ich muss mit der Maus über das JInternalFrame bewegen
und zum Teil klicken, damit alle objekte (JTextFields und JButtons) angezeigt werden, die JLabels
werden überhaupt nicht angezeigt.

Sehr merkwürdig! :bahnhof:

Was kann es denn sein!? :?:
 

Wildcard

Top Contributor
Bei Swing wird nicht paint, sondern paintComponent überschrieben.
Der erste Aufruf sollte dabei immer super.paintComponent(g) sein.
 

Xclipse

Aktives Mitglied
Das Übrschreiben habe ich verstanden. Danke

Aber wie soll ich es mit super.paintComponent(g) anstellen?

Soll ich es so machen:

public void initialize() {
this.setSize(900, 700);
this.setTitle("Eingabe Formular");
this.setResizable(true);
this.setMaximizable(true);
this.setIconifiable(true);
this.setClosable(true);
this.setContentPane(getHaputPanel());
+ super.paintComponent(g);
}

oder

public eingabeFormular() {
initialize();
this.setVisible(true);
+ super.paintComponent(g);
}

oder

public void paintComponent(Graphics g) {
g.setColor (Color.red);
g.drawLine(100, 350, 800, 350);
g.drawLine(200, 10, 200, 200);
+ super.paintComponent(g);
}

Naja.. ich leg mich mal hin und Morgen sieht die Welt ganz anders aus!! :gaen:

Danke Nochmals

guten Nacht JohnBoy :gaen:
guten Nacht Elizabeth :gaen:
 

Ariol

Top Contributor
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor (Color.red);
g.drawLine(100, 350, 800, 350);
g.drawLine(200, 10, 200, 200);
}
 

Xclipse

Aktives Mitglied
Es tut mir leid aber die sch.. will nicht funktionieren!!!! :x
Ich werde wahnsinnig!!!!!! :autsch:

Dieses Fenster wird in einem JDesktopPane aufgerufen.
Ich möchte gerne in der mitte vom gridPanel_Center ein Kreuz zeichnen.
Es werden aber auch Labels und Texte hinzu kommen. (Was kein Problem ist!!!)

Es geht einfach nicht diese komische Classe, Methode, Funktion "nicht Funktion" (oder was es auch immer sein mag, ich bin total durcheinander und blicke selber nicht mehr durch).

Code:
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.setColor(Color.yellow);
		g.drawLine(600, 500, 250, 500);
	}

Kann mir bitte einer helfen? DANKE!!!


Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.SystemColor;

import javax.swing.JInternalFrame;
import javax.swing.JPanel;

class linie extends JInternalFrame {

    public JPanel hauptPanel = null;
    public JPanel gridPanel_North = null;
    public JPanel gridPanel_North_West = null;
    public JPanel gridPanel_North_East = null;
    public JPanel gridPanel_Center = null;
    public JPanel gridPanel_South = null;

    public static void main(String[] args) {
        linie l = new linie();
        l.setVisible(true);
    }

    public linie() {
        super();
        initialize();
    }

    public void initialize() {
        this.setSize(900, 700);
        this.setTitle("Eingabe Formular");
        this.setResizable(true);
        this.setContentPane(getHaputPanel());
    }

    public JPanel getHaputPanel() {
        if (hauptPanel == null) {

            GridLayout gridLayout_hauptPanel = new GridLayout(3,1);
            BorderLayout borderLayout = new BorderLayout();

            hauptPanel = new JPanel();
            hauptPanel.setLayout(gridLayout_hauptPanel);
            hauptPanel.setBackground(SystemColor.cyan);

            gridPanel_North = new JPanel();
            gridPanel_North.setLayout(borderLayout);
            gridPanel_North.setBackground(Color.red);

            gridPanel_North_West = new JPanel();
            gridPanel_North_West.setLayout(new GridBagLayout());
            gridPanel_North_West.setBackground(Color.red);

            gridPanel_North_East = new JPanel();
            gridPanel_North_East.setLayout(new GridBagLayout());
            gridPanel_North_East.setBackground(Color.red);

            gridPanel_North.add(gridPanel_North_West, BorderLayout.WEST);
            gridPanel_North.add(gridPanel_North_East, BorderLayout.EAST);

            gridPanel_Center = new JPanel();
            gridPanel_Center.setLayout(new GridBagLayout());
            gridPanel_Center.setBackground(Color.blue);

            gridPanel_South = new JPanel();
            gridPanel_South.setLayout(new GridBagLayout());
            gridPanel_South.setBackground(Color.orange);

            hauptPanel.add(gridPanel_North, BorderLayout.NORTH);
            hauptPanel.add(gridPanel_Center, java.awt.BorderLayout.CENTER);
            hauptPanel.add(gridPanel_South, BorderLayout.SOUTH);

        }
        return hauptPanel;
    }
}
 

Wildcard

Top Contributor
Code:
    public static void main(String[] args) {
        linie l = new linie();
        l.setVisible(true);
    }
:shock: :autsch:
Was soll denn das sein?
Das Ding heißt JInternalFrame und ist als MDI zu verwenden, sprich in einer JDesktopPane
 

Xclipse

Aktives Mitglied
Danke für den Hinweis!

Vor lauter Kopieren, Einfügen und Testen bin ich durcheinander.

Im ausführlichen Quellcode ist es auch richtig.

Die main Methode habe ich rausgenommen und im Konstruktor habe ich
noch this.setVisible(true); eingefügt.

Alles funktioniert wie es sein sollte aber die Linien werden nicht gezeichnet. :cry:

Was mache ich falsch oder was übersehe ich hier :!: :?: :bahnhof:

S.O.S bitte um hilfe
 

André Uhres

Top Contributor
Xclipse hat gesagt.:
..Ich werde wahnsinnig!!!!!! :autsch: . Ich möchte gerne in der mitte vom gridPanel_Center ein Kreuz zeichnen..
Nana, wer wird denn gleich durchdrehen :shock:
Erstmal... gaaanz wichtig!...Klassennamen immer mit grossem Anfangsbuchstaben schreiben,
im Gegensatz zu Variablennamen und Methodennamen.
Und mach bitte public nur was auch public sein muss!
Code:
package desktop;
/*
 * LinieDemo.java
 */
import java.awt.*;
import javax.swing.*;
public class LinieDemo extends JFrame {
    private JDesktopPane desktop;
    private Linie linie;
    public LinieDemo() {
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        desktop = new JDesktopPane();
        getContentPane().add(desktop, BorderLayout.CENTER);
        linie = new Linie();
        linie.setVisible(true);
        desktop.add(linie);
    }
    public static void main(final String args[]) {new LinieDemo().setVisible(true);}
}
class Linie extends JInternalFrame {
    private  JPanel hauptPanel = null;
    private JPanel gridPanel_North = null;
    private JPanel gridPanel_North_West = null;
    private JPanel gridPanel_North_East = null;
    private JPanel gridPanel_Center = null;
    private JPanel gridPanel_South = null;
    public Linie() {
        super();
        initialize();
    }
    private void initialize() {
        this.setSize(900, 700);
        this.setTitle("Eingabe Formular");
        this.setResizable(true);
        this.setContentPane(getHaputPanel());
    }
    private JPanel getHaputPanel() {
        if (hauptPanel == null) {
            GridLayout gridLayout_hauptPanel = new GridLayout(3,1);
            BorderLayout borderLayout = new BorderLayout();
            hauptPanel = new JPanel();
            hauptPanel.setLayout(gridLayout_hauptPanel);
            hauptPanel.setBackground(SystemColor.cyan);
            gridPanel_North = new JPanel();
            gridPanel_North.setLayout(borderLayout);
            gridPanel_North.setBackground(Color.red);
            gridPanel_North_West = new JPanel();
            gridPanel_North_West.setLayout(new GridBagLayout());
            gridPanel_North_West.setBackground(Color.red);
            gridPanel_North_East = new JPanel();
            gridPanel_North_East.setLayout(new GridBagLayout());
            gridPanel_North_East.setBackground(Color.red);
            gridPanel_North.add(gridPanel_North_West, BorderLayout.WEST);
            gridPanel_North.add(gridPanel_North_East, BorderLayout.EAST);
            gridPanel_Center = new JPanel(){
                public void paintComponent(Graphics g) {
                    super.paintComponent(g);
                    g.setColor(Color.red);
                    g.drawLine(100, 110, 800, 110);
                    g.drawLine(440, 10, 440, 200);
                }
            };
            gridPanel_Center.setLayout(new GridBagLayout());
            gridPanel_Center.setBackground(Color.blue);
            gridPanel_South = new JPanel();
            gridPanel_South.setLayout(new GridBagLayout());
            gridPanel_South.setBackground(Color.orange);
            hauptPanel.add(gridPanel_North, BorderLayout.NORTH);
            hauptPanel.add(gridPanel_Center, BorderLayout.CENTER);
            hauptPanel.add(gridPanel_South, BorderLayout.SOUTH);
        }
        return hauptPanel;
    }
}
 

Xclipse

Aktives Mitglied
Buah!!! :applaus:
Sch.. die Wand an!!! :wink:
Danke man... wirklich!!!! :toll:

Ich lerne mit Eclipse+VE halt so, dass ich die Objekte einfüge und mir den generierten Code auswerte ggf. im
Internet, Bücher usw. nachlese. Wenn ich z.B. Buttons einfüge, wird dieses Objekt ausserhalb
angelgt und innerhalb von getHaputPanel() zum entsprächenden Panel hinzu addiert und deshalb
dachte ich dass es so ungefähr passieren muss!!!

Aber was hier passiert ist mir bischen zuviel.
Warum kann ich es nicht auch so hizu addieren??? :bahnhof:
Da wäre ich doch nie darauf gekommen!

Ich wäre Dir sehr dankbar wenn Du es kurz kommentieren könntest.

Die vorgaben werde ich in zukunft beherzigen.
 
G

Gast

Gast
hallo ich habe auch so ein Problem...

nur will ich eigendlich nur ein Linen Gitter Zeichen.. es hat auch mal funktioniert*lang lang ist es her* aber jetzt geht es nicht mehr.. so wie ich das sehe wohllt ihr eine methode machen die paintComponent heißt und dafür da ist das Panel neu zu zeichnen.. nur mit dem Super haut es bei mir überhaupt nicht hin

das ist die Methode

public void paintComponent( Graphics g ) {

super.paintComponent( g );
g.setColor(Color.black);

int width = getSize().width;
int height = getSize().height;

for( int i = width/8; i< width; i+=width/8){
getGraphics().drawLine(i, height/8, i, height);
}

for( int i = height/8; i< height; i+=height/8){
getGraphics().drawLine(0, i, width, i);
}
}

so wie ihr das habt nur mit meinem Gitter.. geht aber auch nicht..

ohne super bekomme ich eine Exception aber fenster und Gitter werden angezeigt
 
G

Gast

Gast
wie mache ich es denn dann? mit paint geht es auch nicht eine Extra methode geschrieben und extra aufgerufen geht auch nicht
ich weiß nicht mehr weiter
 
G

Gast

Gast
arg alles klar.. man macht es pit paint und sagt super.paint(g)
ich volltrottel
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
N JavaFX Vor beenden der Anwendung durch klicken von X Dialog zeigen AWT, Swing, JavaFX & SWT 1
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
pkm MainFrame durch Actionlistener auffrischen, aber wie? AWT, Swing, JavaFX & SWT 2
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
A Panelwechsel durch RadioButtons AWT, Swing, JavaFX & SWT 1
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
Monokuma 2D-Grafik Imageimport durch eine gezeichnete Form ersetzen AWT, Swing, JavaFX & SWT 16
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
S JavaFX Tab durch Enter ersetzten AWT, Swing, JavaFX & SWT 3
M Swing Durch Usereingabe neues Objekt AWT, Swing, JavaFX & SWT 2
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
S Speicher Leak durch Tabellenaktualisierung AWT, Swing, JavaFX & SWT 5
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
N Swing Abfrage durch JTextField nach Button betätigung AWT, Swing, JavaFX & SWT 3
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
C Durch klicken von Button neues Fenster oeffnen AWT, Swing, JavaFX & SWT 18
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
B EventHandler für durch Tastenkombination erzeugte Zeichen AWT, Swing, JavaFX & SWT 3
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
G Swing Durch GlassPane auf Button klicken und ActionEvent auslösen AWT, Swing, JavaFX & SWT 0
K Swing Durch Methode erzeugte Buttons ansteuern AWT, Swing, JavaFX & SWT 5
K JTable komplett durch andere ersetzen AWT, Swing, JavaFX & SWT 4
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
F 2D-Grafik Objekt durch Einwirkung einer Kraft im Raum bewegen AWT, Swing, JavaFX & SWT 14
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
P JFrame manuell Grösse verändern durch 'mouseDragged' AWT, Swing, JavaFX & SWT 3
Messoras JWindow/Frame durch das man durchklicken kann AWT, Swing, JavaFX & SWT 5
P Rendern von Geraden im 3 dimensionalen Raum durch Rotationen AWT, Swing, JavaFX & SWT 0
S Swing Navigation durch JPanels AWT, Swing, JavaFX & SWT 0
D Swing Durch JFRAME hindurch klicken AWT, Swing, JavaFX & SWT 2
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
achillesat SWT Browser öffnen durch Button click AWT, Swing, JavaFX & SWT 5
R JButton durch Enter auslösen AWT, Swing, JavaFX & SWT 7
S Canvas durch transparentes JPanel sichtbar machen AWT, Swing, JavaFX & SWT 2
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
S Objekt durch Tasteneingabe mehrmals drehen AWT, Swing, JavaFX & SWT 9
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
A Swing JTextField durch einen JButton leeren AWT, Swing, JavaFX & SWT 15
A Swing Anpassen der Spaltenbreite durch die länge eines Strings AWT, Swing, JavaFX & SWT 3
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
J Swing JButton durch Eingabe von Zahlen in JTextFields aktivieren AWT, Swing, JavaFX & SWT 3
A JComboBox-Inhalt durch neues Array ersetzen AWT, Swing, JavaFX & SWT 2
L Border verschwindet durch Graphics.drawImage() AWT, Swing, JavaFX & SWT 4
S Swing Scrollpanes: wie kann ich durch Java-Code an den "Anfang" scrollen AWT, Swing, JavaFX & SWT 8
M Swing JMenu verdeckt durch Komponente (aber kein AWT und Swing mix!?) AWT, Swing, JavaFX & SWT 3
C Swing Fensterresize durch doppelklick - wie die neue Grösse erhalten? AWT, Swing, JavaFX & SWT 3
V Applet JApplet Flackern durch Repaint AWT, Swing, JavaFX & SWT 11
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
F Drag & Drop durch Verbindungslinien AWT, Swing, JavaFX & SWT 10
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
L SWT Text SelectionText ersetzen durch anderen String AWT, Swing, JavaFX & SWT 6
O keine ähnliche Farben durch Random in Java AWT, Swing, JavaFX & SWT 21
L ListSelectionListener durch Code auslösen AWT, Swing, JavaFX & SWT 3
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
Shanks Hintergrundfarbe durch Button click ändern ?? AWT, Swing, JavaFX & SWT 6
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
G Zeile in JTable durch rechte Maustaste manipulieren AWT, Swing, JavaFX & SWT 4
E Swing CellEditor mit Combobox durch Tastatureingabe editieren?! AWT, Swing, JavaFX & SWT 3
G Menü verschwindet durch .setText() AWT, Swing, JavaFX & SWT 4
A JScrollBar durch Button ersetzten AWT, Swing, JavaFX & SWT 2
xehpuk Swing Komponenten werden durch setFont() winzig AWT, Swing, JavaFX & SWT 3
T neues Fenster durch Button öffnen funktioniert nicht!! AWT, Swing, JavaFX & SWT 2
A Swing Komponente für Swing und JSF durch MVC AWT, Swing, JavaFX & SWT 5
J AWT Artefakte bei AWT-Rendering durch parallelen Thread AWT, Swing, JavaFX & SWT 4
B bin am verzweifeln, will auf knopfdruck durch ne überprüfung die labels unsichtbar machen AWT, Swing, JavaFX & SWT 2
V JTable - SelectionMode wird durch RowFilter verändert AWT, Swing, JavaFX & SWT 2
B Anzeigefehler in GridBagLayout durch paintComponent(Graphics g) AWT, Swing, JavaFX & SWT 3
B Pfade durch Farbräume definieren AWT, Swing, JavaFX & SWT 20
Semox Swing Kreis löschen durch Mausklick in der Nähe AWT, Swing, JavaFX & SWT 2
E Swing JPanels durch ziehen am Rand vergrößern/verkleinern?! AWT, Swing, JavaFX & SWT 2
Z JPanel wird erst durch aufziehen des Fensters sichtbar AWT, Swing, JavaFX & SWT 3
S Programmablauf durch "wait for Button" unterbrechen AWT, Swing, JavaFX & SWT 5
P jframe eingabe durch button AWT, Swing, JavaFX & SWT 2
E Login wird durch NullPointerException abgebrochen AWT, Swing, JavaFX & SWT 10
badfish Swing JPanel austauschen durch Button-Druck AWT, Swing, JavaFX & SWT 6
D Swing Storage von / Zugriff auf und durch Actions AWT, Swing, JavaFX & SWT 5
O JSlider - wie unterscheide ich mit Maus verändert und durch setValue verändert. AWT, Swing, JavaFX & SWT 16
T JTable durch ActionEvent befüllen AWT, Swing, JavaFX & SWT 3
U Tab schließen durch Button in Panel AWT, Swing, JavaFX & SWT 7
D ausgewählte Textstellen scheinen durch Dialog durch AWT, Swing, JavaFX & SWT 7
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
B Inhalt von JTextField durch Klick auf JButton in JLabel anzeigen lassen AWT, Swing, JavaFX & SWT 8
B Heavyweight Popup lässt keine MouseEvents durch AWT, Swing, JavaFX & SWT 2
N RCP/SWT View durch Programm auf 2. Bildschirm verschieben AWT, Swing, JavaFX & SWT 2
N Durch Button drücken neues Fenster öffnen AWT, Swing, JavaFX & SWT 13

Ähnliche Java Themen


Oben