-1

簡単なGUIである次のクラスがあり、ブラウザに表示できるようにアプレットにしたいと思います。コードを HTML ページに埋め込む方法は知っていますが (完了しました)、クラスをアプレットにするにはどうすればよいですか? また、ブラウザにアプレットを表示するためだけにWebサーバーは必要ないと思います...

package tester1;

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

public class PanelTest implements ActionListener {

    JFrame frame;
    JLabel inputLabel;
    JLabel outputLabel;
    JLabel outputHidden;
    JTextField inputText;
    JButton button;
    JButton clear;
    JButton about;

    public PanelTest() {
       frame = new JFrame("User Name");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setLayout(new GridLayout(3, 2, 10, 10));

       //creating first row
       JPanel row1 = new JPanel();
       inputLabel = new JLabel("Your Name");
       inputText = new JTextField(15);
//       FlowLayout flow1 = new FlowLayout(FlowLayout.CENTER, 10, 10);
//       row1.setLayout(flow1);
       row1.add(inputLabel);
       row1.add(inputText);
       frame.add(row1);
       //creating second row
       JPanel row2 = new JPanel();
       button = new JButton("Display");
       clear = new JButton("Clear");
       about = new JButton("About");
       button.addActionListener(this);
       clear.addActionListener(this);
       about.addActionListener(new displayAbout());
       row2.add(button);
       row2.add(clear);
       row2.add(about);
       frame.add(row2);
       //creating third row
       JPanel row3 = new JPanel();
       outputLabel = new JLabel("Output:", JLabel.LEFT);
       outputHidden = new JLabel("", JLabel.RIGHT);
//       FlowLayout flow2 = new FlowLayout(FlowLayout.CENTER, 10, 10);
//       row3.setLayout(flow2);
       row3.add(outputLabel);
       row3.add(outputHidden);
       frame.add(row3); 

       frame.pack();
       frame.setVisible(true);

    }  

    //same method listen for two different events
    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();
        if(command.equals("Display")) {
            outputHidden.setText(inputText.getText());
        }
        if(command.equals("Clear")) {
            outputHidden.setText("");
            inputText.setText("");
        }        
    }

    //another way to listen for events
    class displayAbout implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(frame, "Username 1.1 \n by Jorge L. Vazquez");
        }
    }    

    public static void main(String[] args) {
        PanelTest frameTest = new PanelTest();
    }

}
4

2 に答える 2

0

JAppletではなくを使用してくださいJFrame。、、、などのアプレットのライフサイクル メソッドについて説明している、関連する Java チュートリアルを必ずお読みください。initstartstopdestroy


補足として、イベント ディスパッチ スレッドの外部で UI を構築しないでください。

于 2012-08-15T20:50:25.670 に答える
0

like veerのJApplet代わりに aを使用しますが、 、、およびも削除する必要がありますJFrameframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);

また、 に置き換えmain(String[] args)ますinit()

于 2012-08-15T20:53:12.473 に答える