Java-апплет не отображается правильно - PullRequest
0 голосов
/ 06 апреля 2011

Я написал небольшой 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 & Paper", "University"
        };
        return industries;
    }

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

  • Mike

1 Ответ

2 голосов
/ 06 апреля 2011

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

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

JTextField textField = new JTextField();

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

JTextField textField = new JTextField(10);

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

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

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

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

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

...