Hallo
Ich habe ein Programm, was verschiedene Rechtecke zeichnen soll.. Man muss immer die Breite und Höhe in den dafür bestimmten Textfeldern eingeben. Alles klappt bis auf eine Sache noch.. Es muss per JButton ein Rechteckt erstellt werden, den man auch verschieben kann.. Das Schieben und das Erstellen des Rechtecks klappt, aber es wird immer nur 1 Rechteck erstellt. Ich möchte aber dass jedes mal wenn ich auf dem JButton klicke ein weiteres Rechteck erstellt wird. Ich habe m Netz gegooglt :rtfm: aber ich bin nicht sehr schlau geworden.. Hier schon mal das was ich bisher hab..
Ich habe ein Programm, was verschiedene Rechtecke zeichnen soll.. Man muss immer die Breite und Höhe in den dafür bestimmten Textfeldern eingeben. Alles klappt bis auf eine Sache noch.. Es muss per JButton ein Rechteckt erstellt werden, den man auch verschieben kann.. Das Schieben und das Erstellen des Rechtecks klappt, aber es wird immer nur 1 Rechteck erstellt. Ich möchte aber dass jedes mal wenn ich auf dem JButton klicke ein weiteres Rechteck erstellt wird. Ich habe m Netz gegooglt :rtfm: aber ich bin nicht sehr schlau geworden.. Hier schon mal das was ich bisher hab..
Java:
public class CreateFile extends JPanel implements ActionListener
{
static CreateFile cf = new CreateFile();
static EditPanel editPanel;
JTextField bausteinWidth;
JTextField bausteinHeight;
public CreateFile()
{
initComponents();
}
public void initComponents()
{
editPanel = new EditPanel();
......
bausteinWidth = new JTextField();
bausteinHeight = new JTextField();
buttonIndividualForms = new JButton();
buttonIndividualForms.addActionListener(this);
}
@Override
/* Hier muss beim Drücken des Button jedes Mal ein neues Rechteckt erzeugt werden */
public void actionPerformed(ActionEvent object)
{
if (object.getSource() == buttonIndividualForms)
{
drawRectangle = true;
cf.bausteinW = Integer.parseInt(bausteinWidth.getText());
cf.bausteinH = Integer.parseInt(bausteinHeight.getText());
repaint();
}
......
}
Java:
public class EditPanel extends JPanel
{
static Rectangle bausteinRect;
public EditPanel()
{
/* ********************* Mouse Listener *************************** */
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
x1 = e.getX();
y1 = e.getY();
}
public void mouseReleased(MouseEvent e)
{
x2 = e.getX();
y2 = e.getY();
repaint();
}
});
/* ****************** Mouse Motion Listener *********************** */
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
repaint();
}
});
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
.........
//baustein
bausteinRect = new Rectangle(0, 0,CreateFile.cf.bausteinW,CreateFile.cf.bausteinH);
g.setColor(orangeRect);
g.fill3DRect(x2, y2, bausteinRect.width, bausteinRect.height,true);