2014-01-26 69 views
0

我在小程序中使用繪製方法制作了一個小型飛船。 我正在使用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); 
     } 
    } 
} 
+0

是。除了創建並設置兩個整數值之外,您在'actionPerformed'中不做任何事情。像你想要的那樣對他們做些什麼? –

+0

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組件。 –

回答

2

添加This.repaint()的actionPerformed()方法

+0

我無法相信一點代碼修復了我的程序哈哈完全瘋了。 – SomeSickJoke

+1

非常感謝java-love – SomeSickJoke