• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

TextFeldwert in Canvas benutzen [ String Int wie geht das ? ]

Brotkurmen

New member
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();
}
}
}
[/JAVA]


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);

}

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,Wert aus dem TextFeld);

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();
}


}
[/JAVA]
 
Zuletzt bearbeitet:
Zurück
Oben