我在小程序中使用繪製方法制作了一個小型飛船。 我正在使用x和y來移動applet框周圍的船。 所以我想我會進一步改善我的自我,並嘗試添加一個textfield
和一個按鈕來改變飛行中的x n y,但是當我點擊按鈕 時,飛船仍然保持不動。這裏是我的代碼:在TextField中使用Applets
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.applet.*;
public class SpaceshipInAJApplet extends Applet implements ActionListener {
int x = 65;
int y = 100;
TextField x1,y1;
Button enter;
public void init() {
setBackground(new Color(0xabcdef));
x1 = new TextField("X : " + x, 5);
y1 = new TextField("Y : " + y, 5);
add(x1);
add(y1);
setSize(500, 500);
enter = new Button("Enter");
add(enter);
enter.addActionListener(this);
}
// Creates Class Called paint to draw objects into the applet
public void paint(Graphics g) {
int []flameX = {x+65,x+75,x+55};
int []flameY = {y+185,y+161,y+161};
int []wingX = {x+65,x+120,x+15};
int []wingY = {y+50,y+150,y+150};
super.paint(g);
// Draw Wing
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(wingX, wingY, 3);
// Draw Wing Border
g.setColor(Color.BLACK);
g.drawPolygon(wingX, wingY, 3);
// Draw Body
g.setColor(Color.LIGHT_GRAY);
g.fillRect(x+50, y+85, 30, 65);
// Draw Border
g.setColor(Color.BLACK);
g.drawRect(x+50, y+85, 30, 65);
// Draw Rocket
g.setColor(Color.LIGHT_GRAY);
g.fillRect(x+55, y+150, 20, 10);
// Draw Border
g.setColor(Color.BLACK);
g.drawRect(x+55, y+150, 20, 10);
// Draw Rocket Flame
g.setColor(Color.ORANGE);
g.fillPolygon(flameX, flameY, 3);
}
public void actionPerformed(ActionEvent ae)
{
try {
int tempX = Integer.parseInt(x1.getText());
int tempY = Integer.parseInt(y1.getText());
}
catch(NumberFormatException ex)
{
System.out.println("Exception : "+ex);
}
}
}
是。除了創建並設置兩個整數值之外,您在'actionPerformed'中不做任何事情。像你想要的那樣對他們做些什麼? –
1)爲什麼要編寫一個小程序?如果這是由於規格。由老師,請參考[爲什麼CS老師應該停止教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)。 2)爲什麼選擇AWT而不是Swing?看到我對[Swing extras over AWT]的回答(http://stackoverflow.com/a/6255978/418556)有很多很好的理由放棄使用AWT組件。 –