2015-04-22 3 views
0

В моем апплете, когда первые три буквы страны вводятся в текстовое поле t и когда кнопка нажата, она должна отображать полное имя страны в текстовом поле r, но я не получаю никаких вывод в текстовом поле r. Почему ничего не отображается?Ничего не отображается в текстовом поле

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-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-учебно-ява-апплеты /). 2) Зачем использовать AWT? См. [Этот ответ] (http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978) по многим причинам, чтобы отказаться от использования AWT с использованием компонентов в пользу Swing. –

+1

* «Я не получаю никакого вывода» * Вы печатаете (например, для Индии) 'Ind' или' ind'? BTW должно быть возможно заменить 'country [i] .substring (0,3) .equals (x)' на 'country [i] .startsWith (x)' –

ответ

1

Он чувствителен к регистру

Вы, вероятно, следует указать минимальную длину столбцов и сделать г нередактируемый.

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



Мой ответ написан с предположением, что ничего уже не импортирован не будет использоваться.

Таким образом, вы можете рассмотреть возможность использования JFrame или JPanel. Вы также должны рассмотреть возможность использования Swing (что вам нужно использовать, если вы используете JFrame или JPanel).

+0

да, это было чувствительно к регистру ...... :) – Hobbit

Смежные вопросы