Hallo Liebe Forum-Mitglieder,
ich sitze nun seit einer Weile schon an einem Problem, jedoch schaffe ich es nicht selber dieses zu lösen...
[Java]
private int altX=0;
private int altY=0;
private int altW=0;
private int altH=0;
private int value = 1234455667;
public Test() {
initComponents();
this.addComponentListener(new ComponentListener() {
public void componentHidden(ComponentEvent e) {
}
public void componentMoved(ComponentEvent e) {
if (e.getComponent().getX() != altX || e.getComponent().getY() != altY){
altX = e.getComponent().getX();
altY = e.getComponent().getY();
System.out.println("Moved");
}
}
public void componentResized(ComponentEvent e) {
if (e.getComponent().getHeight() != altH || e.getComponent().getWidth() != altW){
altH = e.getComponent().getHeight();
altW = e.getComponent().getWidth();
System.out.println("resized");
e.getComponent().aktuallisierePanel(); //<<<<<<<<<<<<WARUM???
}
}
public void componentShown(ComponentEvent e) {
}
});
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(900, 600));
setPreferredSize(new java.awt.Dimension(1200, 900));
jPanel1.setBackground(new java.awt.Color(255, 102, 102));
jPanel1.setMinimumSize(new java.awt.Dimension(900, 450));
jPanel1.setPreferredSize(new java.awt.Dimension(32767, 675));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 900, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 675, Short.MAX_VALUE)
);
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START);
jPanel2.setMinimumSize(new java.awt.Dimension(900, 150));
jPanel2.setPreferredSize(new java.awt.Dimension(32767, 225));
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 900, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>
public void aktuallisierePanel(){
jPanel1.revalidate();
jPanel2.revalidate();
this.revalidate();
}
[/code]
Also.... ich habe mich bisschen schlau gemacht und weiß so ungefähr wie Event-Handler und so weiter arbeiten...
Ich habe oben neben dem was nicht funktioniert, eine kleine Markierung gesetzt.
So wie ich das verstanden habe, lieferte.getComponent() doch als Rückgabewert meine Klasse "Test" in welcher ich die Methode aktuallisierePanel habe, oder ??
Hat jemand ne Idee, Lösung etc, was ich ändern/besser machen kann, sodass ich dieses Problem nicht habe?
P.S. wäre optimal wenn es nicht zu kompliziert verfasst wäre.
ich sitze nun seit einer Weile schon an einem Problem, jedoch schaffe ich es nicht selber dieses zu lösen...
[Java]
private int altX=0;
private int altY=0;
private int altW=0;
private int altH=0;
private int value = 1234455667;
public Test() {
initComponents();
this.addComponentListener(new ComponentListener() {
public void componentHidden(ComponentEvent e) {
}
public void componentMoved(ComponentEvent e) {
if (e.getComponent().getX() != altX || e.getComponent().getY() != altY){
altX = e.getComponent().getX();
altY = e.getComponent().getY();
System.out.println("Moved");
}
}
public void componentResized(ComponentEvent e) {
if (e.getComponent().getHeight() != altH || e.getComponent().getWidth() != altW){
altH = e.getComponent().getHeight();
altW = e.getComponent().getWidth();
System.out.println("resized");
e.getComponent().aktuallisierePanel(); //<<<<<<<<<<<<WARUM???
}
}
public void componentShown(ComponentEvent e) {
}
});
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(900, 600));
setPreferredSize(new java.awt.Dimension(1200, 900));
jPanel1.setBackground(new java.awt.Color(255, 102, 102));
jPanel1.setMinimumSize(new java.awt.Dimension(900, 450));
jPanel1.setPreferredSize(new java.awt.Dimension(32767, 675));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 900, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 675, Short.MAX_VALUE)
);
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START);
jPanel2.setMinimumSize(new java.awt.Dimension(900, 150));
jPanel2.setPreferredSize(new java.awt.Dimension(32767, 225));
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 900, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>
public void aktuallisierePanel(){
jPanel1.revalidate();
jPanel2.revalidate();
this.revalidate();
}
[/code]
Also.... ich habe mich bisschen schlau gemacht und weiß so ungefähr wie Event-Handler und so weiter arbeiten...
Ich habe oben neben dem was nicht funktioniert, eine kleine Markierung gesetzt.
So wie ich das verstanden habe, lieferte.getComponent() doch als Rückgabewert meine Klasse "Test" in welcher ich die Methode aktuallisierePanel habe, oder ??
Hat jemand ne Idee, Lösung etc, was ich ändern/besser machen kann, sodass ich dieses Problem nicht habe?
P.S. wäre optimal wenn es nicht zu kompliziert verfasst wäre.