lgorse
Mitglied
Hallo,
ich habe ganz neu mit Java angefangen und mich gleich mal an Swing herangewagt
. Ich hätte gerne ein JPanel, auf welches ich mit awt zeichnen kann. Das Problem ist jedoch, dass ich dem JPanel keine Breite bzw. Höhe zuweisen kann. Beim recherchieren im Internet habe ich herausgefunden, dass das Layout auf null gesetzt werden soll, damit gehts aber leider auch nicht. Hat jemand ne Idee wie das geht?
Mein Code:
ich habe ganz neu mit Java angefangen und mich gleich mal an Swing herangewagt

Mein Code:
PHP:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
* Das primäre Fenster der Anwendung
*
* @author lgorse
*/
public class Main extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
/*
* GUI Elemente
*/
private JPanel panel;
public Main()
{
super("Mein erstes Swing-Programm");
/*
* Panel erstellen
*/
panel = new JPanel();
panel.setLayout(null);
panel.setBounds(10, 10, 300, 300);
/*
* Panel zum Frame hinzufügen
*/
getContentPane().add(panel, BorderLayout.NORTH);
/*
* Aktion zum Schließen
*/
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent event) {
}
/**
* Wird aufgerufen, wenn dass UI ganz oder teilweise neu gezeichnet werden
* muss
*
* @param g repräsentiert die Zeichenfläche
*/
public void paint(Graphics g) {
System.out.println("Breite: " + panel.getWidth() + " Höhe: " + panel.getHeight());
paintPanel(panel.getGraphics());
}
/**
* Zeichnet die Grafikausgabe für das Panel neu
*
* @param g repräsentiert die Zeichenfläche
*/
private void paintPanel(Graphics g) {
g.drawLine(10, 10, 400, 400);
}
/**
* Erstellt das primäre Fenster
*
* @param args übernimmt die Kommandozeilenobjekte
*/
public static void main(String[] args) {
Main frame = new Main();
frame.setLocation(100, 100);
frame.setSize(500, 500);
frame.setVisible(true);
}
}