Hallo
Ich will aus meinem Applet die Werte aus TextFeldern in einem separatem Canvas ( in einer cvZeichnung) benutzen.
Ich habe schon das TextFeld und einen ActionListener . Mit Strings und Integer.parseInt habe ich es auch schon probiert.
Wie kriege ich den Wert aus dem Panel des Applets bzw aus dem Textfeld als int in mein Canvas ?
Bzw. kann ich das überhaupt mit einem TextFeld machen oder muss ich eine ChoiceBox oder ein Zahlenfeld nehmen ?
Vielen Dank für eure Hilfe !
[JAVA=96]import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.util.*;
public class Mühle2 extends Applet implements ActionListener
{
private Panel pnNord = new Panel();
private Panel pnSüd = new Panel();
private Panel pnWest = new Panel();
private Panel pnCenter = new Panel();
private Panel pnZeichnen = new Panel();
private Panel pnLöschen = new Panel();
private Panel pnAnzahl = new Panel();
private Panel pnText = new Panel();
private Button btZeichnen = new Button("Zeichnen");
private Button btLöschen = new Button("Löschen");
private TextField tAnzahl = new TextField (" ");
private String tAn = tAnzahl.getText();
Mühle2Canvas cvZeichnung;
Label lbTitel = new Label("Mühle");
Label lbCopyright = new Label("");
Label lbText = new Label("Anzahl der Flügel");
Font ftTitel = new Font("SansSerif",Font.BOLD,16);
public void init()
{
resize(640,480);
setLayout(new BorderLayout());
add(pnNord,BorderLayout.NORTH);
pnNord.setBackground(Color.green);
pnNord.setForeground(Color.black);
pnNord.add(lbTitel);
add(pnSüd,BorderLayout.SOUTH);
pnSüd.setBackground(Color.black);
pnSüd.setForeground(Color.green);
pnSüd.add(lbCopyright);
add(pnWest,BorderLayout.WEST);
pnWest.setLayout(new GridLayout(10,1));
pnWest.add(pnZeichnen);
pnZeichnen.add(btZeichnen);
btZeichnen.addActionListener(this);
btLöschen.addActionListener(this);
pnZeichnen.setBackground(Color.blue);
pnWest.add(pnLöschen);
pnLöschen.add(btLöschen);
pnWest.add(pnAnzahl);
pnAnzahl.setBackground(Color.blue);
pnAnzahl.setForeground(Color.white);
pnAnzahl.add(lbText);
pnWest.add(pnText);
pnText.setBackground(Color.blue);
pnText.add(tAnzahl);
pnLöschen.setBackground(Color.blue);
pnWest.setBackground(Color.blue);
pnWest.setForeground(Color.white);
add(pnCenter,BorderLayout.CENTER);
cvZeichnung = new Mühle2Canvas(640-pnWest.getSize().width,480-pnNord.getSize().height-pnSüd.getSize().height);
pnCenter.add(cvZeichnung);
cvZeichnung.setBackground(Color.white);
cvZeichnung.init();
tAnzahl.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
Object cmd = event.getSource();
if (cmd == btZeichnen)
{
cvZeichnung.Zeichnen();
repaint();
}
if (cmd == btLöschen)
{
cvZeichnung.Löschen();
repaint();
}
}
}
[/code]
Hier das Canvas in dem ich die Zahl aus dem Textfeld zum zeichnen benutzen möchte.
[JAVA=71]
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class Mühle2Canvas extends Canvas implements ActionListener
{
private int iBreite;
private int iHöhe;
private Image imBild;
private Graphics grGrafik;
int iMasthöhe;
int iMastbreite;
int iDurchmesser;
int iRadius;
int iRotorlänge;
public Mühle2Canvas (int iBreite,int iHöhe)
{
this.iBreite=iBreite;
this.iHöhe=iHöhe;
this.setSize(iBreite,iHöhe);
}
public void init()
{
imBild=createImage(iBreite,iHöhe);
grGrafik=imBild.getGraphics();
tAnzahl.addActionListener(this);
Mühle2Canvas( TextField tAnzahl)
}
public void paint(Graphics g)
{
g.drawImage(imBild,0,0,this);
}
public void update(Graphics g)
{
paint(g);
}
public void Zeichnen()
{
iMasthöhe=100;
iMastbreite=5;
iDurchmesser=10;
iRadius=5;
iRotorlänge=60;
grGrafik.drawLine(200,200,iRadius,num);
grGrafik.drawRect(250,200,iMastbreite,iMasthöhe);
grGrafik.drawArc(250-iRadius/2,190,iDurchmesser,iDurchmesser,90,360);
repaint();
}
public void Löschen()
{
grGrafik.setColor(Color.white);
grGrafik.fillRect(0,0,iBreite,iHöhe);
grGrafik.setColor(Color.black);
repaint();
}
}
[/code]
Ich will aus meinem Applet die Werte aus TextFeldern in einem separatem Canvas ( in einer cvZeichnung) benutzen.
Ich habe schon das TextFeld und einen ActionListener . Mit Strings und Integer.parseInt habe ich es auch schon probiert.
Wie kriege ich den Wert aus dem Panel des Applets bzw aus dem Textfeld als int in mein Canvas ?
Bzw. kann ich das überhaupt mit einem TextFeld machen oder muss ich eine ChoiceBox oder ein Zahlenfeld nehmen ?
Vielen Dank für eure Hilfe !
[JAVA=96]import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.util.*;
public class Mühle2 extends Applet implements ActionListener
{
private Panel pnNord = new Panel();
private Panel pnSüd = new Panel();
private Panel pnWest = new Panel();
private Panel pnCenter = new Panel();
private Panel pnZeichnen = new Panel();
private Panel pnLöschen = new Panel();
private Panel pnAnzahl = new Panel();
private Panel pnText = new Panel();
private Button btZeichnen = new Button("Zeichnen");
private Button btLöschen = new Button("Löschen");
private TextField tAnzahl = new TextField (" ");
private String tAn = tAnzahl.getText();
Mühle2Canvas cvZeichnung;
Label lbTitel = new Label("Mühle");
Label lbCopyright = new Label("");
Label lbText = new Label("Anzahl der Flügel");
Font ftTitel = new Font("SansSerif",Font.BOLD,16);
public void init()
{
resize(640,480);
setLayout(new BorderLayout());
add(pnNord,BorderLayout.NORTH);
pnNord.setBackground(Color.green);
pnNord.setForeground(Color.black);
pnNord.add(lbTitel);
add(pnSüd,BorderLayout.SOUTH);
pnSüd.setBackground(Color.black);
pnSüd.setForeground(Color.green);
pnSüd.add(lbCopyright);
add(pnWest,BorderLayout.WEST);
pnWest.setLayout(new GridLayout(10,1));
pnWest.add(pnZeichnen);
pnZeichnen.add(btZeichnen);
btZeichnen.addActionListener(this);
btLöschen.addActionListener(this);
pnZeichnen.setBackground(Color.blue);
pnWest.add(pnLöschen);
pnLöschen.add(btLöschen);
pnWest.add(pnAnzahl);
pnAnzahl.setBackground(Color.blue);
pnAnzahl.setForeground(Color.white);
pnAnzahl.add(lbText);
pnWest.add(pnText);
pnText.setBackground(Color.blue);
pnText.add(tAnzahl);
pnLöschen.setBackground(Color.blue);
pnWest.setBackground(Color.blue);
pnWest.setForeground(Color.white);
add(pnCenter,BorderLayout.CENTER);
cvZeichnung = new Mühle2Canvas(640-pnWest.getSize().width,480-pnNord.getSize().height-pnSüd.getSize().height);
pnCenter.add(cvZeichnung);
cvZeichnung.setBackground(Color.white);
cvZeichnung.init();
tAnzahl.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
Object cmd = event.getSource();
if (cmd == btZeichnen)
{
cvZeichnung.Zeichnen();
repaint();
}
if (cmd == btLöschen)
{
cvZeichnung.Löschen();
repaint();
}
}
}
[/code]
Hier das Canvas in dem ich die Zahl aus dem Textfeld zum zeichnen benutzen möchte.
[JAVA=71]
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class Mühle2Canvas extends Canvas implements ActionListener
{
private int iBreite;
private int iHöhe;
private Image imBild;
private Graphics grGrafik;
int iMasthöhe;
int iMastbreite;
int iDurchmesser;
int iRadius;
int iRotorlänge;
public Mühle2Canvas (int iBreite,int iHöhe)
{
this.iBreite=iBreite;
this.iHöhe=iHöhe;
this.setSize(iBreite,iHöhe);
}
public void init()
{
imBild=createImage(iBreite,iHöhe);
grGrafik=imBild.getGraphics();
tAnzahl.addActionListener(this);
Mühle2Canvas( TextField tAnzahl)
}
public void paint(Graphics g)
{
g.drawImage(imBild,0,0,this);
}
public void update(Graphics g)
{
paint(g);
}
public void Zeichnen()
{
iMasthöhe=100;
iMastbreite=5;
iDurchmesser=10;
iRadius=5;
iRotorlänge=60;
grGrafik.drawLine(200,200,iRadius,num);
grGrafik.drawRect(250,200,iMastbreite,iMasthöhe);
grGrafik.drawArc(250-iRadius/2,190,iDurchmesser,iDurchmesser,90,360);
repaint();
}
public void Löschen()
{
grGrafik.setColor(Color.white);
grGrafik.fillRect(0,0,iBreite,iHöhe);
grGrafik.setColor(Color.black);
repaint();
}
}
[/code]
Zuletzt bearbeitet: