首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >空白java小程序

空白java小程序
EN

Stack Overflow用户
提问于 2014-11-26 15:51:31
回答 2查看 183关注 0票数 0

我对java applet有个问题。我正在尝试制作一个简单的java小程序,看看它是如何工作的。

当我把所有的内容都放在一个类中时,一切看起来都很好,但是当我把它分成其他类时,applet窗口什么也没有显示:

头等舱:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.gmv.klinika;

import javax.swing.*;

/**
 * Created by gumovvy on 27.11.14.
 */
public class mainClass extends JApplet {
    OtherClass fr = new OtherClass();
    public void init() {
        fr.guiInit();

    }

}

二等舱:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.gmv.klinika;

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

/**
 * Created by gumovvy on 27.11.14.
 */
public class OtherClass extends JFrame {
    JButton jbtnOne;
    JButton jbtnTwo;

    JLabel jlab;
    public void guiInit() {
        // Set the applet to use flow layout.
        setLayout(new FlowLayout());

        // Create two buttons and a label.
        jbtnOne = new JButton("One");
        jbtnTwo = new JButton("Two");

        jlab = new JLabel("Press a button.");

        // Add action listeners for the buttons.
        jbtnOne.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent le) {
                jlab.setText("Button One pressed.");
            }
        });

        jbtnTwo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent le) {
                jlab.setText("Button Two pressed.");
            }
        });

        // Add the components to the applet's content pane.
        getContentPane().add(jbtnOne);
        getContentPane().add(jbtnTwo);
        getContentPane().add(jlab);
    }




}

你有什么想法吗?

原始类如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

/* 
This HTML can be used to launch the applet: 

<object code="MyApplet" width=240 height=100> 
</object> 

*/ 

public class MyApplet extends JApplet { 
  JButton jbtnOne; 
  JButton jbtnTwo; 

  JLabel jlab; 

  public void init() { 
    try { 
      SwingUtilities.invokeAndWait(new Runnable () { 
        public void run() { 
          guiInit(); // initialize the GUI 
        } 
      }); 
    } catch(Exception exc) { 
      System.out.println("Can't create because of "+ exc); 
    } 
  } 

  // Called second, after init().  Also called 
  // whenever the applet is restarted.  
  public void start() { 
    // Not used by this applet. 
  } 

  // Called when the applet is stopped. 
  public void stop() { 
    // Not used by this applet. 
  } 

  // Called when applet is terminated.  This is 
  // the last method executed. 
  public void destroy() { 
    // Not used by this applet. 
  } 

  // Setup and initialize the GUI.  
  private void guiInit() { 
    // Set the applet to use flow layout. 
    setLayout(new FlowLayout()); 

    // Create two buttons and a label. 
    jbtnOne = new JButton("One"); 
    jbtnTwo = new JButton("Two"); 

    jlab = new JLabel("Press a button."); 

    // Add action listeners for the buttons. 
    jbtnOne.addActionListener(new ActionListener() {      
      public void actionPerformed(ActionEvent le) {  
        jlab.setText("Button One pressed.");  
      }      
    });      

    jbtnTwo.addActionListener(new ActionListener() {      
      public void actionPerformed(ActionEvent le) {  
        jlab.setText("Button Two pressed.");  
      }      
    });      

    // Add the components to the applet's content pane. 
    getContentPane().add(jbtnOne); 
    getContentPane().add(jbtnTwo); 
    getContentPane().add(jlab);     
  } 
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-26 16:09:55

将您的OtherClass改为从JPanel扩展.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class OtherClass extends JPanel {
    JButton jbtnOne;
    JButton jbtnTwo;

    JLabel jlab;
    public OtherClass() {
        // Set the applet to use flow layout.
        setLayout(new FlowLayout());

        // Create two buttons and a label.
        jbtnOne = new JButton("One");
        jbtnTwo = new JButton("Two");

        jlab = new JLabel("Press a button.");

        // Add action listeners for the buttons.
        jbtnOne.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent le) {
                jlab.setText("Button One pressed.");
            }
        });

        jbtnTwo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent le) {
                jlab.setText("Button Two pressed.");
            }
        });

        // Add the components to the applet's content pane.
        add(jbtnOne);
        add(jbtnTwo);
        add(jlab);
    }
}

OtherClass添加到MainClass..。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MainClass extends JApplet {
    OtherClass fr = new OtherClass();
    @Override
    public void init() {
        add(fr);
    }

}

从概念上讲,JAppelt不应该打开其他窗口,小程序应该是自包含的。由于不能将顶级容器(如JFrame )添加到其他容器中,所以很难进行扩展,因此我选择从JPanel扩展OtherClass的原因是……

票数 1
EN

Stack Overflow用户

发布于 2014-11-26 16:01:41

这些线条看上去很可疑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    // Set the applet to use flow layout.
    setLayout(new FlowLayout());

    ...

    // Add the components to the applet's content pane.
    getContentPane().add(jbtnOne);
    getContentPane().add(jbtnTwo);
    getContentPane().add(jlab);

如果所有这些都在一个类中,setLayout()和getContentPane()将调用JApplet的setLayout和getContentPane方法,而不是现在,因为它们位于另一个类中。

当代码都在一个类中时,你能贴出代码的外观吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27160887

复制
相关文章
Android 必知必会 - 隐藏烦人的 JAVA 图标
当你在项目中运行 ./gradlew 是,有时需要调用一些 JAVA 工具。在 OS X 上,这会伴随着 Java 图标在 Docker 上的显示,并且永远不会消失,影响你对项目的关注。
他叫自己MR.张
2019/07/01
7450
Android 必知必会 - 隐藏烦人的 JAVA 图标
DRF三级视图
所谓DRF三级视图,是指DRF对于GenericAPIView和Mixin的直接封装。在DRF的文档中,可以看到有非常的多的“三级视图”可供使用。在此不做一一展示使用,只是选择几个来再一次重新实现DRF二级视图GenericAPIView中的方法。
zy010101
2021/12/17
4510
DRF三级视图
Android开发-Listview中显示不同的视图布局
在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排的行为第二类布局。单一类型的ListView很简单,下面着重介绍一下ListView包含多种类型视图布局的情形。
他叫自己MR.张
2019/07/01
2.3K0
DRF一级视图APIView
APIView是Django REST framework提供的所有视图的基类,继承自Django的View类。使用方式:
zy010101
2021/12/15
9240
DRF二级视图GenericAPIView
GenericAPIView继承自APIView,增加了对于列表视图和详情视图可能用到的通用支持方法。通常使用时,可搭配一个或多个Mixin扩展类。
zy010101
2021/12/17
7060
DRF二级视图GenericAPIView
配置不同二级域名访问不同端口的应用
一,简单配置方法: 1、记录类型选择隐形URL 2、记录值解析到一级域名对应的端口 (阿里云的好像不太灵) 二、Apache配置代理: 1、http.conf: NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin liang.top ServerName www.ccc.top ServerAlias ccc </VirtualHost> #<VirtualHost *:80> # S
JQ实验室
2022/02/11
3.5K0
配置不同二级域名访问不同端口的应用
Android必知必会-App 常用图标尺寸规范汇总
版权声明:本文为[他叫自己Mr.张]的原创文章,转载请注明出处,否则禁止转载。 https://micro.blog.csdn.net/article/details/51910874
他叫自己MR.张
2019/07/01
1.4K0
Android必知必会-App 常用图标尺寸规范汇总
Phoenix Framework对于Tree该方法节点设置不同的图标,每个[通俗易懂]
在包Javax Swing的Tree对象。我们需要设置不同的图标为每个节点。它封装了一个通用的方法:
全栈程序员站长
2022/07/06
3210
Phoenix Framework对于Tree该方法节点设置不同的图标,每个[通俗易懂]
让知更鸟主题的分类图标支持二级分类
今天,突然想启用知更鸟主题的分类图标功能,之前是怕影响速度,现在开了静态缓存,安心了一点。 参照鸟哥的方法在主题选项里面开启后,发现图片的超链接打不开!检查后发现路径不对,比如玛思阁的 Batch 分类的地址应该是 http://zhangge.net/script/batch,而分类图标链接却是 http://zhangge.net/batch(Ps:本来路径中默认会有个 category 的,玛思阁用插件屏蔽了)。这样出来的链接的目的地就变成 404 了。。。看来,知更鸟主题的分类图标默认不支持 2 级
张戈
2018/03/26
1.1K0
让知更鸟主题的分类图标支持二级分类
不同语言操作符的优先级
fliter
2023/09/05
1200
不同语言操作符的优先级
干货!7个设计师必知的图标设计原理,收藏了!
创建高质量的图标套组需要合适的方法,训练有素的眼睛,一些迭代和大量实践。下面,我将通过7个原则和大量实际示例来说明。最终目标是让你了解设计出优质图标的关键细节。
用户5009027
2020/02/19
1.3K0
第一季 | view 视图的不同用法-APIView
Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
小团子
2020/04/13
1.3K0
Android开发必知--几种不同对话框的实现
  在开发过程中,与用户交互式免不了会用到对话框以实现更好的用户体验,所以掌握几种对话框的实现方法还是非常有必要的。在看具体实例之前先对AlertDialog做一个简单介绍。AlertDialog是功
codingblock
2017/12/28
2.4K0
Android开发必知--几种不同对话框的实现
Nginx为多个不同的静态资源配置不同的二级域名
有多个域名: dog.aimiter.com cat .aimiter.com … 需要映射到不同的静态资源目录: /var/www/html/dog /var/www/html/cat
Spaceack
2020/11/04
2.7K0
Nginx为多个不同的静态资源配置不同的二级域名
访问控制protected是不同包中对子类可见,什么意思?
System.out.println("in B i=" + i);//protected是不同包中对子类(Test)可见,马 克-t o-w i n
马克java社区
2021/03/24
6650
访问控制protected是不同包中对子类可见,什么意思?
如何使用Sentry通过视图实现Impala的行级授权
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在CDH中要实现表的行级授权,可以使用Cloudera的产品RecordService,但是该组件尚处于开发中,Beta版,并不建议上生产,参考: https://www.cloudera.com/downloads/beta/record-service.html 在CDH中,S
Fayson
2018/04/18
2.4K0
如何使用Sentry通过视图实现Impala的行级授权
深度学习在语音识别上的应用
我今天演讲主要分四个部分,第一个是分享语音识别概述,然后是深度神经网络的基础;接下来就是深度学习在语音识别声学模型上面的应用,最后要分享的是语音识别难点以及未来的发展方向。
腾讯云AI
2018/10/11
7.6K2
深度学习在语音识别上的应用
荣耀手环5自定义详解
荣耀手环5发布时就表明会开启自定义,经历了这么长时间,终于官方表示要开始自定义操作了,目前还在内测中,工具会在9月中旬放出,已经有华为主题负责人讲解了过程,本文章在此对其进行介绍和详解。
KINDYEAR
2022/07/12
1.3K0
荣耀手环5自定义详解
点击加载更多

相似问题

必须在“回收”视图上滚动,使项目变得可见。

10

地图视图标记不总是可见的

17

Google在不同的缩放级别上设置数据层的可见性

12

视图元素在不同API级别上的不同外观-Android

10

在视图已可见时更改uitabbar图标

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文