2016-07-26 5 views
1

Я могу запустить этот апплет, но он не отображает ни одного из компонентов JApplet, апплет не отображает метки или текстовые поля, и, надеюсь, мой if/else состояние правильное.У вас проблема с этим JApplet, неуверенный, почему он не работает

package JavaPractice; 

/* Dominic Spucches 
Exercise 7-2 
This program will compare 2 applets 
*/ 

import java.awt.*; 
import java.awt.event.AWTEventListener; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 

public abstract class ex7_2 extends JApplet implements ActionListener { 

    private static final long serialVersionUID = 1L; 
     JLabel st1 = new JLabel("Enter a string: "); 
     JTextField str1 = new JTextField(); 
     JLabel st2 = new JLabel("Enter a string: "); 
     JTextField str2 = new JTextField(); 
     JLabel same1 = new JLabel(); 
     JLabel same2 = new JLabel(); 
     JLabel results = new JLabel(); 
     FlowLayout flow = new FlowLayout(); 
     Container c; 


    public void init() 
    { 

     c = getContentPane(); 
     c.setLayout(flow); 
     c.setBackground(Color.gray); 
     st1.setForeground(Color.blue); 
     c.add(st1); 
     str1.setForeground(Color.blue); 
     c.add(str1); 
     st2.setForeground(Color.blue); 
     c.add(st2); 
     str2.setForeground(Color.blue); 
     c.add(str2); 
     str2.addActionListener(this);  
     same1.setForeground(Color.blue); 
     c.add(same1);  
     same2.setForeground(Color.blue); 
     c.add(same2); 
     results.setForeground(Color.blue); 
     c.add(results); 




    } 

    public void actionPerformed(ActionEvent e) 
    { 
     String str1, str2; 

     if (str1.equals(str2)) // s1 == s2 
      same1.setText("Same string"); 
     else if (str1.equalsIgnoreCase(str2)) 
      same2.setText("Same string - different case"); 
     else if (str1.compareTo(str2) > 0) // s1 > s2 
      results.setText(str1 + " is alphabetically greater than " 
        + str2); 
     else  // s1 < s2 
      results.setText(str1 + " is alphabetically less than " 
        + str2); 
     results.setText("Difference is " + (str1.compareTo(str2)) /*i keep getting an error here as well in eclipse, no clue */ 
    } 

} 
+0

Убедитесь, что [Java Console] (http://www.java.com/en/download/help/javaconsole.xml) сконфигурировано для отображения. Если на уровне по умолчанию нет выхода, поднимите уровень и повторите попытку. –

ответ

2

Удалите abstract ключевое слово из объявления класса, так что может быть создан

public abstract class ex7_2 extends JApplet implements ActionListener { 
    ^
2

Ваш пример имеет несколько наблюдений:

  • Как показано here, abstract класс не может быть создан непосредственно.

  • В actionPerformed() локальные строки должны быть установлены в соответствующие значения текстового поля.

  • Обратите внимание на пересмотренную логику в actionPerformed() ниже.

  • Ваша последняя ошибка связана с отсутствующей точкой с запятой.

  • Обратите внимание на использование инициализации компонента, чтобы установить начальный размер.

  • Рассмотрите связанные проблемы с апплетами, рассмотренными here в будущем.

  • См. Также Initial Threads.

image

//<applet code="ex7_2.class" width=500 height=100></applet> 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 

public class ex7_2 extends JApplet implements ActionListener { 

    JLabel st1 = new JLabel("Enter a string: "); 
    JTextField str1 = new JTextField(8); 
    JLabel st2 = new JLabel("Enter a string: "); 
    JTextField str2 = new JTextField(8); 
    JLabel equals = new JLabel("  "); 
    JLabel compare = new JLabel("  "); 
    JLabel results = new JLabel("  "); 
    FlowLayout flow = new FlowLayout(FlowLayout.LEFT, 8, 8); 

    @Override 
    public void init() { 
     Container c = getContentPane(); 
     c.setLayout(flow); 
     c.setBackground(Color.lightGray); 
     st1.setForeground(Color.blue); 
     c.add(st1); 
     str1.setForeground(Color.blue); 
     c.add(str1); 
     st2.setForeground(Color.blue); 
     c.add(st2); 
     str2.setForeground(Color.blue); 
     c.add(str2); 
     str2.addActionListener(this); 
     equals.setForeground(Color.blue); 
     c.add(equals); 
     compare.setForeground(Color.blue); 
     c.add(compare); 
     results.setForeground(Color.blue); 
     c.add(results); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     String s1 = str1.getText(); 
     String s2 = str2.getText(); 
     if (s1.equals(s2)) { 
      equals.setText("Same strings."); 
     } else if (s1.equalsIgnoreCase(s2)) { 
      equals.setText("Same strings, different case."); 
     } else { 
      equals.setText("Different strings."); 
     } 
     if (s1.compareTo(s2) > 0) { 
      compare.setText(s1 + " is alphabetically greater than " + s2 + "."); 
     } else { 
      compare.setText(s1 + " is alphabetically less than " + s2 + "."); 
     } 
     results.setText("Difference is " + (s1.compareTo(s2) + ".")); 
    } 
} 

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

  • Нет связанных вопросов^_^