2015-04-22 101 views
0

在我的小程序中,當國家的前三個字母被輸入到文本字段t中並且當按下按鈕時,它應該在文本字段r中顯示完整的國家名稱,但是我沒有收到在文本框r中輸出。爲什麼沒有顯示?Textfield中沒有顯示任何內容

import java.applet.Applet; 
import java.awt.Button; 
import java.awt.Label; 
import java.awt.TextField; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 


public class Copycat extends Applet implements ActionListener { 

    String country[]={"Japan","China","Russia","India","Germany","Iraq"}; 
    Button n; 
    Label l; 
    TextField t; 
    TextField r; 
    String x; 
    public void init() 
    { 
     n=new Button("Click Me"); 
     l=new Label("Enter the name of the Country"); 
     t=new TextField(); 
     r=new TextField(); 
     add(n); 
     add(l); 
     add(t); 
     add(r); 
     n.addActionListener(this); 

      } 

    public void actionPerformed(ActionEvent e) {  
     if(e.getSource()==n) 
    { 
     x=t.getText(); 
     for(int i=0;i<=5;i++) 
     { 
      if((country[i].substring(0,3).equals(x))) 
        { 
        r.setText(country[i]); 
        } 
     } 
    } 
    } 
} 
+0

1)爲什麼要編寫一個小程序?如果是由於老師指定它,請將它們轉介給[爲什麼CS教師應該**停止**教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop教學-java的小應用程序/)。 2)爲什麼使用AWT?看到[這個答案](http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978)有很多很好的理由放棄AWT使用組件有利於Swing。 –

+1

*「我沒有得到任何輸出」*您是否正在鍵入(例如印度)'Ind'或'ind'?順便說一句,應該可以用'country [i] .startsWith(x)'' –

回答

1

它是區分大小寫

你或許應該指定最小列長度,使R無編輯。

t=new TextField(3); 
r=new TextField(10); 
r.setEditable(false); 

如果你不希望它是大小寫敏感的,你可以使用

x=t.getText().toUpperCase(); 
for(int i=0;i<=country.length;i++){ 
    if((country[i].substring(0,3).toUpperCase().equals(x))) 



我的答案是編寫的,沒有任何已經導入未使用的假設。

也就是說,你可能要考慮使用 JFrameJPanel。您還應該考慮使用 Swing(如果您使用JFrame或JPanel,則需要使用它)。

+0

'替換'country [i] .substring(0,3).equals(x)'是的,這是區分大小寫的...... :) – Hobbit