Hallo,
ich habe folgendes Problem und hoffe, dass mir jemand weiterhelfen kann:
Ich habe mit Netbeans ein Frame erstellt, diesem habe ich ein TabbedPane hinzugefügt. Dem TabbedPane füge ich dann ein normales JPanel hinzu, welches ein ScrollPane enthält. Diesem ScrollPane wiederrum füge ich die meine eigene Klasse PaintComponent hinzu, welche von JComponent erbt und mit welcher ich Graphics-Objekte zeichne. Wenn das zu kompliziert war, hier nochmal die allgemeine Auflistung:
JFrame->TabbedPane->JPanel
JPanel-> ScrollPane->PaintComponent
Das Problem, dass ich hierbei habe, ist, dass die Graphics-Objekte bzw. die gesamte PaintComponent nicht angezeigt werden.
Dass es daran liegt, dass die Graphics-Objekte nicht richtig erstellt werden, ist eigentlich ausgeschlossen, da ich wie mehrfach hier im Forum geschrieben die paintComponent(Graphics g) meiner eigenen Klasse überschreibe. Außerdem funktioniert das Zeichnen auch, wenn ich die PaintComponent-Klasse einem normalen JPanel hinzufüge.
Hier der Code des JPanel:
Und wegen der Vollständigkeit noch die eigene Klasse PaintComponent, mit der ich die Graphics-Objekte zeichne:
Ich hoffe, es weiß jemand Rat, da ich wirklich keine Ahnung habe, warum es nicht funktioniert.
ich habe folgendes Problem und hoffe, dass mir jemand weiterhelfen kann:
Ich habe mit Netbeans ein Frame erstellt, diesem habe ich ein TabbedPane hinzugefügt. Dem TabbedPane füge ich dann ein normales JPanel hinzu, welches ein ScrollPane enthält. Diesem ScrollPane wiederrum füge ich die meine eigene Klasse PaintComponent hinzu, welche von JComponent erbt und mit welcher ich Graphics-Objekte zeichne. Wenn das zu kompliziert war, hier nochmal die allgemeine Auflistung:
JFrame->TabbedPane->JPanel
JPanel-> ScrollPane->PaintComponent
Das Problem, dass ich hierbei habe, ist, dass die Graphics-Objekte bzw. die gesamte PaintComponent nicht angezeigt werden.
Dass es daran liegt, dass die Graphics-Objekte nicht richtig erstellt werden, ist eigentlich ausgeschlossen, da ich wie mehrfach hier im Forum geschrieben die paintComponent(Graphics g) meiner eigenen Klasse überschreibe. Außerdem funktioniert das Zeichnen auch, wenn ich die PaintComponent-Klasse einem normalen JPanel hinzufüge.
Hier der Code des JPanel:
Java:
public class NewJPanel extends javax.swing.JPanel {
private HMPaintComponent paintComponentOverview;
/** Creates new form NewJPanel */
public NewJPanel() {
initComponents();
paintComponentOverview = new HMPaintComponent(HMController.initShapesOverview());
paintComponentOverview.setPreferredSize(new Dimension(400,400));
paintComponentOverview.setVisible(true);
paintComponentOverview.setBackground(Color.red);
jScrollPane1.add(paintComponentOverview);
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
Und wegen der Vollständigkeit noch die eigene Klasse PaintComponent, mit der ich die Graphics-Objekte zeichne:
Java:
public class HMPaintComponent extends JComponent {
private GeoShape[] storagerack;
public HMPaintComponent(GeoShape[] hmOverviewGeoShape) {
super();
HeatMapController.geoShapePosition(this.getWidth(),this.getHeight());
storagerack = hmOverviewGeoShape;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
for (GeoShape shape: storagerack) {
if (shape.getShape() != null && shape.getColor() != null) {
g2d.setColor(shape.getColor());
g2d.fill(shape.getShape());
g2d.setColor(Color.BLACK);
g2d.draw(shape.getShape());
}
}
}
}
}
Ich hoffe, es weiß jemand Rat, da ich wirklich keine Ahnung habe, warum es nicht funktioniert.