Erste Schritte JLabel wird nicht angezeigt

papawt

Mitglied
Hallo
JLabel wird nicht angezeigt beim
starten der Anwendung.
Java:
package mtest;
public class M_Main
{
    public static void main(String[] args)
    {
        M_Test main = new M_Test();
    }
}

Java:
package mtest;

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

import javax.swing.JFrame;
import javax.swing.JLabel;

public class M_Test extends JFrame
{
    private JLabel lbllabel;
   
    @Override
    public void paint(Graphics g)
    {
        g.setColor(Color.RED);
        g.fill3DRect(20, 40, 50, 50, true);
    }
   
    public M_Test()
    {
        erzeugen();
        hinzufügen();
        setSize(245, 241);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
   
    private void erzeugen()
    {
        lbllabel = new JLabel("New label");
        lbllabel.setBackground(Color.CYAN);
        lbllabel.setOpaque(true);
        lbllabel.setBounds(10, 177, 46, 14);
    }
   
    private void hinzufügen()
    {
        getContentPane().setLayout(null);
        getContentPane().add(lbllabel);
    }
}

ohne, folgendem Code

@Override
public void paint(Graphics g)
{
g.setColor(Color.RED);
g.fill3DRect(20, 40, 50, 50, true);
}

funktioniert es.
Warum ist das so ?
Und gibt es eine möglichkeit das es
auch mit dem Code funktioniert?

MfG: Willi
 
Ja du rufst in paint() die super methode auf. Aber besser benutzt du gleich paintComponent(). diese Tutorials wo paint() benutzt wird sterben irgendwie nicht aus.

Gruß

Claus
 
Hallo Claus
als anfänger weis ich jetzt nicht
wie ich paintComponent() in meinen
Code einfügen kann.
Es würde mich Freuen wenn du mir das zeigst.

MfG: Willi
 
Hallo
mit folgendem Code funktioniert es,
Java:
package paintcomponent;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;

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

public class PaintComponent extends JPanel
{
    private JLabel lbllabel;
   
    @Override
    protected void paintComponent(Graphics g)
    {
        g.fillRect(20, 20, 100, 100);
    }
   
    public static void main(String[] args)
    {
        JFrame Form = new JFrame();
        Form.setTitle("PaintComponent");
        Form.setSize(500, 395);
        Form.setLocationRelativeTo(null);
        // Form.setResizable(false);
        Form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Form.getContentPane()
                .setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
        PaintComponent g = new PaintComponent();
        g.setPreferredSize(new Dimension(100, 100));
        JLabel lbllabel = new JLabel("New label");
        lbllabel.setBackground(Color.CYAN);
        lbllabel.setOpaque(true);
        lbllabel.setBounds(10, 177, 46, 14);
        // Form.getContentPane().setLayout(null);
        Form.getContentPane().add(lbllabel);
        Form.add(g);
        Form.setVisible(true);
    }
}

ich weis aber immer noch nicht
wie ich das in meinem ersten beitrag ändern kann.

MfG: Willi
 

Zurück
Oben