Java-апплет отображается некорректно

#java #eclipse #applet

#java #eclipse #апплет

Вопрос:

Я написал небольшой java-апплет, который будет действовать как онлайн-форма, которая будет принимать информацию, относящуюся к заказам и т.д. … и отправлять соответствующие электронные письма в почтовые ящики компании. Моя проблема в том, что апплет загружается некорректно и что ни один из управляемых событиями кодов в программе не выполняется. (Сюда входят функции, которые заполняют списки и варианты выбора в форме). Я спросил своего коллегу, разместил ли он файл * .class на веб-сервере компании (в том же каталоге, что и выполняемый html-код), и он подтвердил, что разместил.

Я в тупике, что может быть причиной того, что апплет не загружается должным образом и что может привести к тому, что апплет не сможет запускать код, управляемый событиями? Вот апплет в сокращенной версии (он немного длинный, поэтому обратите внимание, действительно обратите ваше внимание на такие методы, как get **(), который является одним из методов, который не выполняется, он заполняет список распространителей вариантами).

 package OrderSpecs;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Properties;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.mail.*;
import javax.mail.internet.*;

import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.JTextField;


public class OrderSpecs extends JApplet implements ActionListener {

    /**
     * This is the OrderSpecs default constructor
     */
    public OrderSpecs() {
        super();
    }

    /**
     * This method initializes this
     * 
     * @return void
     */
    public void init() {
        this.setPreferredSize(new Dimension(880, 1279));
        this.setSize(880, 1279);
        this.setContentPane(new JScrollPane(getJContentPane()));

        applicationList = new ArrayList<Application>();

        Date dateNow = new Date ();
        SimpleDateFormat dateformatMMDDYYYY = new SimpleDateFormat("MM/dd/yyyy");
        this.dateString = new StringBuilder( dateformatMMDDYYYY.format( dateNow ) );
    }

    /**
     * Initialize the list of industries for the drop-down list
     */
    private String[] getIndustryList()
    {
        String[] industries = 
        {
                "            ", "Commercial Lab", "Environmental", "Food / Wine", "Government", "Marine Lab", 
                "Other", "Petro Chemical", "Power Generation", "Pulp amp; Paper", "University"
        };
        return industries;
    }
  

Я использую Eclipse для разработки апплета, и когда я компилирую / запускаю код, он отлично отображается на моем компьютере, есть идеи? Большое спасибо,

  • Майк

Комментарии:

1. Какие ошибки выдает консоль Java вашего браузера, если таковые имеются? Что насчет журнала ошибок браузера? Вы подтвердили, что страница загружает апплет? Все это поможет с ответами.

2. Похоже, что весь важный код отсутствует??

3. Страница загрузит апплет, но текстовые поля будут иметь длину 0, и ни одно из выпадающих списков, которые у меня есть в апплете, не заполнено никакими значениями, это почти так, как если бы апплет не был инициализирован, за исключением того, что все отображается, просто ничего из этого не работает.

4. Апплет в целом очень длинный, я просто хотел дать представление о его инициализации, поскольку я думаю, что это проблема, или, по крайней мере, так кажется.

Ответ №1:

но текстовые поля будут иметь длину 0

Ну, это зависит от того, как вы определяете текстовое поле. Если вы используете:

 JTextField textField = new JTextField();
  

Тогда текстовое поле будет иметь размер, равный тексту, который в данном случае равен 0. Вы должны использовать что-то вроде следующего, чтобы задать предпочтительный размер:

 JTextField textField = new JTextField(10);
  

и ни одно из выпадающих списков, которые у меня есть в апплете, не заполнено никакими значениями

Опять же, из опубликованного кода мы не можем определить, что вы делаете, поэтому мы не можем предложить никакой помощи.

Апплет в целом очень длинный,

Итак, вопрос в том, почему вы пишете очень длинную программу, не выполняя никакой отладки по пути? Начните с создания программы из 10 строк, которая просто создает поле со списком, добавляет данные в модель и отображает поле со списком в графическом интерфейсе. Если это работает отлично, теперь вы можете сравнить рабочий код со своей программой, чтобы увидеть, что вы делаете по-другому.

Если это не сработает, тогда у вас есть простая полная программа для публикации на форуме. Это называется SSCCE. В противном случае мы просто строим дикие догадки, что не очень хорошо расходует наше время.