G
Gast
Gast
Hallo
Ich hab ein Problem mit einem JPanel.
Ich möchte es mittels eines Buttons modifizieren können. (Dies ist nur ein Testprogramm).
Es wird angezeigt, dass die Komponenten im JPanel angefügt worden sind, jedoch werden sie nicht angezeigt - warum nicht?
Ich hoffe dass mir jemand helfen kann.
Danke im Voraus
Hier der Code meiner Testklasse:
und hier noch der Code vom "DrawablePoint":
Ich hab ein Problem mit einem JPanel.
Ich möchte es mittels eines Buttons modifizieren können. (Dies ist nur ein Testprogramm).
Es wird angezeigt, dass die Komponenten im JPanel angefügt worden sind, jedoch werden sie nicht angezeigt - warum nicht?
Ich hoffe dass mir jemand helfen kann.
Danke im Voraus
Hier der Code meiner Testklasse:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
public class Test extends JApplet implements ActionListener{
JButton xxx = new JButton("xxx");
JPanel main = new JPanel();
JPanel but = new JPanel();
JLabel info = new JLabel();
int i=10;
public void init(){
setSize(300,300);
getContentPane().setLayout(null);
getContentPane().add(main);
getContentPane().add(but);
main.setBounds(0,0,300,200);
main.setLayout(null);
but.setBounds(0,200,300,100);
main.setBackground(Color.black);
but.setBackground(Color.blue);
but.add(xxx);
but.add(info);
xxx.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
DrawablePoint xxx = new DrawablePoint(i,100);
xxx.setLocation(i,100);
main.add(xxx);
info.setText(Integer.toString(i)+" "+Integer.toString(main.getComponentCount())+" "+Integer.toString(main.getComponent(0).getX())); // Zeigt aktuellen Wert von i, Anzahl der in main eingefügten komponenten, x-koordinate des ersten Punktes
i+=10;
repaint();
}
}
und hier noch der Code vom "DrawablePoint":
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class DrawablePoint extends JComponent{
double x;
double y;
public DrawablePoint(double x, double y){
this.x=x;
this.y=y;
}
public double getXCoord(){
return x;
}
public double getYCoord(){
return y;
}
public void update(double x, double y){
this.x=x;
this.y=y;
}
protected void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING, java.awt.RenderingHints.VALUE_ANTIALIAS_ON);
Ellipse2D.Double point = new Ellipse2D.Double(x,y,3.0,3.0);
g2.setColor(Color.white);
g2.fill(point);
this.setBounds(getRootPane().getBounds());
}
}