前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java入门代码练习与记录-2

Java入门代码练习与记录-2

作者头像
Tommonkey
发布2023-03-20 10:54:37
3350
发布2023-03-20 10:54:37
举报
文章被收录于专栏:TommonkeyTommonkey

这次主要练习的是图形用户界面设计,当然也有一些乱起八糟的东西,但主要是Applet的内容。

代码语言:javascript
复制
// java 序列化与反序列化demo
// 导入反序列化所需要的包
/*
import javax.naming.event.ObjectChangeListener;
import java.io.*;

class user implements java.io.Serializable{
    public String name;
    public String id;
    public void OutInfo(){
        System.out.println(this.name+this.id);
    }
}

public class test {
    public static void main(String[] args){
        user ldd = new user();
        ldd.name = "tommonkey";
        ldd.id = "10086";
        System.out.println(ldd.id);

        try {
            // 进行序列化,会在当前目录下生成一个序列化文件
            FileOutputStream fileOut = new FileOutputStream("./serial.txt");    // 打开文件流
            ObjectOutputStream objOut = new ObjectOutputStream(fileOut);    // 创建对象流
            objOut.writeObject(ldd);    // 输出序列化对象
            objOut.close();     // 关闭
            fileOut.close();
            System.out.println("serial is over!");

            // 进行反序列化
            user n = null;
            FileInputStream fileIn = new FileInputStream("./serial.txt");
            ObjectInput objIn = new ObjectInputStream(fileIn);
            n = (user) objIn.readObject();
            objIn.close();
            fileIn.close();
            System.out.println(n.name+n.id);
        }catch (IOException i){
            i.printStackTrace();
            return;
        }catch (ClassNotFoundException a){
            System.out.println("Employee class not found");
            a.printStackTrace();
            return;
        }
    }
}
*/





// Runtime.getRuntime().exec():系统命令执行方法
/*
public class test {
    public static void main(String[] args) throws Exception{
        Runtime.getRuntime().exec("notepad.exe");   // 打开记事本
    }
}
*/





// applet,awt-GUI界面响应事件流程demo
// 启动方法,再html页面中设置此class文件的路径名,再cmd启动:AppletViewer ****.html
// html中添加路径的方法:<APPLET CODE="test.class" width=500 height=500></APPLET>
/*
import sun.security.mscapi.CPublicKey;

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class test extends Applet implements ActionListener{     // 继承appelt 且实现接口:动作监听
    private Button but1,but2;
    int button = 0;
    public void init(){
        but1 = new Button("按钮1");
        but2 = new Button("按钮2");
        add(but1);      // 注册事件监听
        add(but2);
        but1.addActionListener(this);   // 事件监听本对象:but1
        but2.addActionListener(this);
    }
    public void paint(Graphics g){
        if(button==1)
            g.drawString("事件监听到你选择了按钮1!",10,20);
        else if(button==2)
            g.drawString("事件监听到你选择了按钮2!",10,20);
    }
    public void actionPerformed(ActionEvent e){     // 实现动作监听必须要有实现该方法
        if(e.getActionCommand().equals("按钮1"))
            button = 1;
        else if(e.getActionCommand().equals("按钮2"))
            button =2;
        repaint();
    }
}
*/




// applet的文本框textField与文本区textArea演示
/*
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class test extends Applet implements ActionListener,TextListener{
    TextArea ta1,ta2;     // 创建两个文本区对象
    TextField text1;      // 创建一个文本框对象
    public void init() {
        text1 = new TextField("this is textField!", 30);
        text1.addActionListener(this);
        text1.addTextListener(this);
        add(text1);

        ta1 = new TextArea("this is textArea!", 100, 100);
        ta1.addTextListener(this);
        add(ta1);
        ta2 = new TextArea("this is orther textArea!", 100, 100);
        ta2.addTextListener(this);
        add(ta2);
    }
    public void actionPerformed(ActionEvent e){
        ta1.append("we have capture you action event and output here!\n");
        repaint();    //刷新
    }
    public void textValueChanged(TextEvent e){
        ta2.append("we have capture you action event and output here!\n");
        repaint();
    }
}
 */
 
 
 
// Appl的单选框与列表demo
/*
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class test extends Applet implements ItemListener{
    CheckboxGroup cbk;
    Checkbox cb1,cb2,cb3,cb4;
    Color showColor;
    List ls;
    String[] colorName={"red","yellow","blue","black"};
    String[] setColor={String.valueOf(Color.red), String.valueOf(Color.yellow), String.valueOf(Color.blue), String.valueOf(Color.black)};
    int num;

    public void init(){
        cbk = new CheckboxGroup();
        cb1 = new Checkbox("Red",cbk,true);
        cb2 = new Checkbox("Yellow",cbk,false);
        cb3 = new Checkbox("Blue",cbk,false);
        cb4 = new Checkbox("Black",cbk,false);
        showColor = Color.red;
        cb1.addItemListener(this);
        cb2.addItemListener(this);
        cb3.addItemListener(this);
        cb4.addItemListener(this);
        add(cb1);
        add(cb2);
        add(cb3);
        add(cb4);

        ls = new List(4,false);
        for(int i=0;i<colorName.length;i++){
            ls.add(colorName[i]);
        }
        ls.addItemListener(this);
        add(ls);
    }

    public void itemStateChanged(ItemEvent e){
        if (e.getSource() == cb1){
            showColor = Color.red;      // getSource()方法:返回当前动作所指向的对象,包含对象的所有信息,而getActionCommond()是指当前动作指向的对象的名称
        }
        if (e.getSource() == cb2){
            showColor = Color.yellow;
        }
        if (e.getSource() == cb3){
            showColor = Color.blue;
        }
        if (e.getSource() == cb4){
            showColor = Color.black;
        }

        // showStatus()方法:打印一行状态信息
        showStatus(ls.getSelectedItem()+":序列号为 "+ls.getSelectedIndex());
        num = ls.getSelectedIndex();
        repaint();
    }

    public void paint(Graphics g){
        g.setColor(showColor);
        g.fillRect(50,80,50,50);

        g.setColor(Color.decode(setColor[num]));    // 这里的类型转化出了问题,我没找解决办法
        g.fillOval(270,100,50,50);
    }
}
 */
 
 
 // 容器Panel(面板):无边框容器,没有边框,也不能移动,缩放,和关闭,通常作为一个容器组件被加到其他容器中
/*
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class test extends Applet implements ActionListener,ContainerListener{
    Button but1,but2;
    Label lab1,lab2,lab3,lab4,lab5;
    Panel pan1,pan2,pan3,pan4,pan5;         // 创建五个panel容器(面板)
    public void init(){
        pan1 = new Panel();
        pan2 = new Panel();
        pan3 = new Panel();
        pan4 = new Panel();
        pan5 = new Panel();
        pan1.setBackground(Color.red);      // 设置面板背景颜色
        pan2.setBackground(Color.yellow);
        pan3.setBackground(Color.black);
        pan4.setBackground(Color.blue);
        pan5.setBackground(Color.green);

        lab1 = new Label("this is red panel");
        lab2 = new Label("this is yellow panel");
        lab3 = new Label("this is black panel");
        lab4 = new Label("this is blue panel");
        lab5 = new Label("this is green panel");

        but1 = new Button("this is button1");
        but2 = new Button("this is button2");

        pan1.add(lab1);         // 将标签添加到panel上
        pan2.add(lab2);
        pan3.add(lab3);
        pan4.add(lab4);
        pan5.add(lab5);

        pan3.add(but1);         // 将按钮添加到panel上
        pan4.add(but2);

        pan1.add(pan3);
        pan2.add(pan4);

        add(pan1);          // 将panel添加到容器中
        add(pan2);
        add(pan5);

        but1.addActionListener(this);
        but2.addActionListener(this);

        pan1.addContainerListener(this);
        pan2.addContainerListener(this);
    }

    public void actionPerformed(ActionEvent e){
        if (e.getSource() == but1){
            pan1.remove(pan3);
            showStatus("remove panel3 in panel1");
        }else{
            pan2.remove(pan4);
            showStatus("remove panel4 in panel2");
        }
    }

    public void componentRemoved(ContainerEvent e){

    }

    public void componentAdded(ContainerEvent e){

    }
}
 */
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档