【问题标题】:how can I make this class an applet我怎样才能使这个类成为一个小程序
【发布时间】:2012-08-16 05:35:34
【问题描述】:

我有以下类,它是一个简单的 gui,我想把它做成一个小程序,以便它可以显示在浏览器中。我知道如何将代码嵌入到 html 页面中(完成)......但是如何让我的课程成为一个小程序?另外,我假设我不需要网络服务器来在我的浏览器中显示小程序......

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();
    }

}

【问题讨论】:

  • 你需要阅读applet tutorial,简单明了。对不起,但你的帖子不是一个可以回答的问题,只是你该学习了。投票结束。
  • “我想把它做成一个小程序” 不可取。相反,启动应用程序。来自使用Java Web Start的链接。
  • 另见answer

标签: java swing applet


【解决方案1】:

使用JApplet 而不是JFrame。请务必阅读 the relevant Java Tutorial,其中涵盖了小程序生命周期方法,例如 initstartstopdestroy


附带说明,您应该在事件调度线程之外构建您的 UI。

【讨论】:

    【解决方案2】:

    使用JApplet 而不是像veer 所说的JFrame,但您还必须删除frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);

    另外,将main(String[] args) 替换为init()

    【讨论】:

    • 什么时候需要扩展 JApplets 类
    • 您将frame 更改为JApplet。
    • netbeans 给出错误“类 panelTest 没有主要方法”
    • 您必须将其作为小程序运行,而不是应用程序。
    • 我保存了它,并嵌入了 .class 文件,但仍然没有显示小程序...我安装了 javafx 插件!
    猜你喜欢
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    相关资源
    最近更新 更多