Heyho,
ich möchte auf einem JPanel zeichnen und das ganze soll über eine eigene Klasse passieren. Doch leider wenn ich es einbinden möchte, zerschießt er mir die ganze Swing Oberfläche.
Könnt ihr mir helfen?
Hauptklasse:
Externe Klasse:
MfG
vin
ich möchte auf einem JPanel zeichnen und das ganze soll über eine eigene Klasse passieren. Doch leider wenn ich es einbinden möchte, zerschießt er mir die ganze Swing Oberfläche.
Könnt ihr mir helfen?
Hauptklasse:
Java:
package mappe;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JSlider;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
import javax.swing.border.EtchedBorder;
public class Haupt extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Haupt frame = new Haupt();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Haupt() {
// Deklaration
contentPane = new JPanel();
JSlider slider = new JSlider();
JButton btnStarten = new JButton("Starten");
JButton btnStoppen = new JButton("Stoppen");
JLabel labelAnzahlTuerme = new JLabel("1");
JLabel lblAnzahlDerTrme = new JLabel("Anzahl der T\u00FCrme:");
JPanel panel = new JPanel();
Zeichenbrett brett = new Zeichenbrett();
// Add
contentPane.add(slider);
contentPane.add(lblAnzahlDerTrme);
contentPane.add(btnStarten);
contentPane.add(btnStoppen);
contentPane.add(labelAnzahlTuerme);
contentPane.add(panel);
// Zeichenbrett einbinden
panel.add(brett);
// MainFrame
setTitle("Die T\u00FCrme von Hanoi");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 800, 700);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
setResizable(false);
// Slider
slider.setMinimum(1);
slider.setMaximum(10);
slider.setBounds(10, 36, 300, 26);
slider.setPaintTicks(true);
slider.setValue(1);
// Buttons
btnStarten.setBounds(342, 36, 89, 23);
btnStoppen.setBounds(441, 36, 89, 23);
// Labels
lblAnzahlDerTrme.setBounds(10, 11, 200, 14);
labelAnzahlTuerme.setBounds(120, 11, 46, 14);
labelAnzahlTuerme.setText(String.valueOf(slider.getValue()));
// Panel
panel.setBounds(10, 73, 764, 577);
panel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
// Events
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent arg0) {
labelAnzahlTuerme.setText(String.valueOf(slider.getValue()));
}
});
}
}
Externe Klasse:
Java:
package mappe;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Zeichenbrett extends JPanel {
protected void paintComponent(Graphics g) {
paintComponent(g);
g.drawLine(0, 0, 10, 5);
}
}
MfG
vin