Hallo Forumsfreunde,
wer kann mir sagen, warum in folgendem Code paintComponent() der Klasse TestFeld nicht aufgerufen wird.
Datei 1:
[JAVA=1]
public class TestUI extends javax.swing.JFrame {
private TestFeld tstFeld;
private javax.swing.JPanel TestPanel;
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
public TestUI() {
initComponents();
tstFeld = new TestFeld();
TestPanel.add(tstFeld);
setVisible(true);
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
TestPanel = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
....
....
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SudokuUI().setVisible(true);
}
});
}
}
[/code]
Datei 2:
[JAVA=1]
public class TestFeld extends javax.swing.JPanel {
public TestFeld() {
initComponents();
setPreferredSize(new Dimension(200, 200));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("Hallo Welt", 10, 10);
}
private void initComponents() {
...
}
}
[/code]
Ganz kurz die Erklärung: In der Hauptklasse TestUI wurde in NetBeans über den Forms-Editor ein einfaches Frame mit drei JPanels und einem Button erzeugt.
Die Klasse TestFeld soll eines der drei JPanels der Hauptklasse, das TestPanel, verwalten. Genauer gesagt, hier soll ein Sudoku-Feld gezeichnet und auf entsprechende Eingaben aktualisiert werden.
In der Klasse TestFeld wurde ebenfalls über den Forms-Editor von Netbeans ein einfaches Frame mit einem JPanel erzeugt.
In der Hauptklasse wird eine Instanz von TestFeld erzeugt und dem TestPanel hinzugefügt.
Leider funktioniert das nicht so, wie ich es mir vorstelle, die Methode paintComponent() wird für die Klasse TestFeld nie aufgerufen.
Was habe ich hier nicht berücksichtigt, bzw. was mache ich falsch.
Mit freundlichem Gruß,
Konrad
wer kann mir sagen, warum in folgendem Code paintComponent() der Klasse TestFeld nicht aufgerufen wird.
Datei 1:
[JAVA=1]
public class TestUI extends javax.swing.JFrame {
private TestFeld tstFeld;
private javax.swing.JPanel TestPanel;
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
public TestUI() {
initComponents();
tstFeld = new TestFeld();
TestPanel.add(tstFeld);
setVisible(true);
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
TestPanel = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
....
....
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SudokuUI().setVisible(true);
}
});
}
}
[/code]
Datei 2:
[JAVA=1]
public class TestFeld extends javax.swing.JPanel {
public TestFeld() {
initComponents();
setPreferredSize(new Dimension(200, 200));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("Hallo Welt", 10, 10);
}
private void initComponents() {
...
}
}
[/code]
Ganz kurz die Erklärung: In der Hauptklasse TestUI wurde in NetBeans über den Forms-Editor ein einfaches Frame mit drei JPanels und einem Button erzeugt.
Die Klasse TestFeld soll eines der drei JPanels der Hauptklasse, das TestPanel, verwalten. Genauer gesagt, hier soll ein Sudoku-Feld gezeichnet und auf entsprechende Eingaben aktualisiert werden.
In der Klasse TestFeld wurde ebenfalls über den Forms-Editor von Netbeans ein einfaches Frame mit einem JPanel erzeugt.
In der Hauptklasse wird eine Instanz von TestFeld erzeugt und dem TestPanel hinzugefügt.
Leider funktioniert das nicht so, wie ich es mir vorstelle, die Methode paintComponent() wird für die Klasse TestFeld nie aufgerufen.
Was habe ich hier nicht berücksichtigt, bzw. was mache ich falsch.
Mit freundlichem Gruß,
Konrad
Zuletzt bearbeitet: