S
Stefano81
Gast
Hallo,
Ich habe ein schwerwiegendes Problem und bin mir nicht sicher, ob dieses in der Form überhaupt lösbar ist.
Zu meinem Problem:
Ich dekodiere Multilayer-Tiff-Dateien und zeichne diese auf einem JimiCanvas (nur der hat die entsprechenden Funktionen zum Zeichnen von solchen Multilayer-Tiff´s)
Jetzt möchte ich allerdings gerne auf diesen JimiCanvas ein JPanel legen, auf welchem ich etwas zeichnen kann.
Dabei muss natürlich das Bild auf dem JimiCanvas sichtbar bleiben und das Gezeichnete auf dem JPanel zu sehen sein.
Ich habe nun schon mehrere Lösungen versucht, aber alles ist fehlgeschlagen. Sobald ich den JPanel dem JimiCanvas adde ist dieser nicht mehr sichtbar, selbst mit "setOpaque(false)" ändert sich an dieser Einstellung nichts.
Hier mal ein Beispiel des Quellcodes:
Falls sich jemand von euch damit auskennt und mir helfen könnte wäre ich sehr verbunden.
Lieben Gruß,
Stefan
Ich habe ein schwerwiegendes Problem und bin mir nicht sicher, ob dieses in der Form überhaupt lösbar ist.
Zu meinem Problem:
Ich dekodiere Multilayer-Tiff-Dateien und zeichne diese auf einem JimiCanvas (nur der hat die entsprechenden Funktionen zum Zeichnen von solchen Multilayer-Tiff´s)
Jetzt möchte ich allerdings gerne auf diesen JimiCanvas ein JPanel legen, auf welchem ich etwas zeichnen kann.
Dabei muss natürlich das Bild auf dem JimiCanvas sichtbar bleiben und das Gezeichnete auf dem JPanel zu sehen sein.
Ich habe nun schon mehrere Lösungen versucht, aber alles ist fehlgeschlagen. Sobald ich den JPanel dem JimiCanvas adde ist dieser nicht mehr sichtbar, selbst mit "setOpaque(false)" ändert sich an dieser Einstellung nichts.
Hier mal ein Beispiel des Quellcodes:
Code:
public class frmMeshGenerator extends JFrame
{
//The canvas in which we display the images.
public JimiCanvas jCanvas;
//The drawframe in the JimiCanvas Container
private JPanel test;
//Constructor
public frmMeshGenerator()
{
jbInit();
}
private void jbInit()
{
this.getContentPane().setLayout(null);
this.setSize(1024, 768);
this.setResizable(false);
jCanvas = new JimiCanvas();
jCanvas.setBounds(new Rectangle(295, 10, 340, 285));
test = new frmDrawFrame();
//Das setBackground dient nur zum Testen der Transparenz
test.setBackground(SystemColor.WHITE);
jCanvas.add(test);
this.getContentPane().add(jCanvas, null);
}
}
//Die Klasse von oben zum Zeichnen des JPanels
public class frmDrawFrame extends JPanel
{
public frmDrawFrame()
{
setOpaque(true);
}
public void paintComponent( Graphics g )
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawLine(10, 60, 180, 60);
}
}
Falls sich jemand von euch damit auskennt und mir helfen könnte wäre ich sehr verbunden.
Lieben Gruß,
Stefan