Hi,
Ich habe in einem JFrame ein JPanel, dass wie folgt "definiert" ist:
private FolderView leftPane = new FolderView();
Belegt leftPane die Fläche, von der Du glaubst, daß sie belegt wird?
Ja, da auf der betreffenden Fläche per g.drawXYZ() gezeichnet wird, und das auch sichtbar ist.
Aus Deinen Code-Schnipselchen ist das nicht erkennbar, da nicht dabei steht, welcher Layoutmanager im JFrame benutzt wird, welche Constraints ggf. für Dein leftView gelten usw.
Hier der Code, auf das Wesentliche reduziert:
_UI.java_
public class UI extends javax.swing.JFrame {
/** Creates new form UI */
public UI() {
initComponents();
/** s.[i]Anmerkung. **/
}
private void initComponents() {
jPanel1 = new FolderView();
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 540, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 163, Short.MAX_VALUE)
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}
// Variables declaration
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
[i]Anmerkung. Ich habs jetzt ersteinmal so implementiert, aber das ist ja höchst unschön:
jPanel1.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
((FolderView)jPanel1).mouseClicked(e);
}
public void mousePressed(MouseEvent e) {
((FolderView)jPanel1).mousePressed(e);
}
usw...
});
_FolderView.java_
public class FolderView extends javax.swing.JPanel implements java.awt.event.MouseListener {
...
public FolderView() {
...
}
@Override
public void paint(Graphics g) {
g.drawXYZ();
...
}
public void mouseClicked(MouseEvent e) {
System.out.println("KLICK!:"+e.getX()+":"+e.getY());
}
public void mousePressed(MouseEvent e) {
System.out.println("Press:"+e.getX()+":"+e.getY());
}
...
}
cu,
Andreas
Gruß,
eneR