Java每日学习笔记1

  1. 单选按钮

JRadioButton radioButton1 = new JRadioButton("Java");// 创建单选按钮

contentPane.add(radioButton1);// 应用单选按钮

?

JRadioButton radioButton2 = new JRadioButton("PHP");// 创建单选按钮

contentPane.add(radioButton2);// 应用单选按钮

?

JRadioButton radioButton3 = new JRadioButton("C++");// 创建单选按钮

contentPane.add(radioButton3);// 应用单选按钮

?

ButtonGroup group = new ButtonGroup();// 创建单选按钮组

group.add(radioButton1);// 将radioButton1增加到单选按钮组中

group.add(radioButton2);// 将radioButton2增加到单选按钮组中

group.add(radioButton3);// 将radioButton

  1. 嵌套窗体

package com.pcx.test;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

?

public class TestInternalFrame {

????final int DESKTOP_WIDTH = 480;

????final int DESKTOP_HEIGHT = 360;

????final int FRAME_DISTANCE = 30;

?

????JFrame jf = new JFrame("父窗口");

????// 定义一个虚拟桌面

????private JDesktopPane desktop = new JDesktopPane();

????// 保存下一个内部窗口的座标点

????private int nextFrameX;

????private int nextFrameY;

????// 定义内部窗口为虚拟桌面的1/2大小

????private int width = DESKTOP_WIDTH / 2;

????private int height = DESKTOP_HEIGHT / 2;

????// 为主窗口定义2个菜单

????JMenu fileMenu = new JMenu("文件");

????// 定义newAction用于创建菜单和工具按钮

????Action newAction = new AbstractAction("新建", new ImageIcon("ico/new.png")) {

????????public void actionPerformed(ActionEvent event) {

????????????// 创建内部窗口

????????????final JInternalFrame iframe = new JInternalFrame("新文档", true, // 可改变大小

????????????????????true, // 可关闭

????????????????????true, // 可最大化

????????????????????true); // 可最小化

????????????iframe.add(new JScrollPane(new JTextArea(8, 40)));

????????????// 将内部窗口添加到虚拟桌面中

????????????desktop.add(iframe);

????????????// 设置内部窗口的原始位置(内部窗口默认大小是0X0,放在0,0位置)

????????????iframe.reshape(nextFrameX, nextFrameY, width, height);

????????????// 使该窗口可见,并尝试选中它

????????????iframe.show();

????????????// 计算下一个内部窗口的位置

????????????nextFrameX += FRAME_DISTANCE;

????????????nextFrameY += FRAME_DISTANCE;

????????????if (nextFrameX + width > desktop.getWidth())

????????????????nextFrameX = 0;

????????????if (nextFrameY + height > desktop.getHeight())

????????????????nextFrameY = 0;

????????}

????};

????// 定义exitAction用于创建菜单和工具按钮

????Action exitAction = new AbstractAction("退出", new ImageIcon("ico/exit.png")) {

????????public void actionPerformed(ActionEvent event) {

????????????System.exit(0);

????????}

????};

?

????public void init() {

????????// 为窗口安装菜单条和工具条

????????JMenuBar menuBar = new JMenuBar();

????????JToolBar toolBar = new JToolBar();

????????jf.setJMenuBar(menuBar);

????????menuBar.add(fileMenu);

????????fileMenu.add(newAction);

????????fileMenu.add(exitAction);

????????toolBar.add(newAction);

????????toolBar.add(exitAction);

????????desktop.setPreferredSize(new Dimension(480, 360));

????????// 将虚拟桌面添加到顶级JFrame容器中

????????jf.add(desktop);

????????jf.add(toolBar, BorderLayout.NORTH);

????????jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

????????jf.pack();

????????jf.setVisible(true);

????}

?

????public static void main(String[] args) {

????????new TestInternalFrame().init();

????}

}

  1. 设置标签中的字体

int size=14;
label.setFont(new Font("Serif",Font.PLAIN,size));

  1. 如何在jlabel中设置文本的换行

String info="<html>你的ID号是:"+user.getId()+"<br/>"+"你的用户名是:"+user.getName()+"</html>";

Label.settext(info);

  1. 类型转换异常


    public class Test {
    ?public static void main(String[] args){
    ??Animal cat=new Cat();
    ??Animal dog=new Dog();
    ??Object b=new Animal();
    ??Object d=new Cat();
    ??displayObject(cat);
    ??displayObject(dog);
    ????// Cat c=(Cat)b; //Animal cannot be cast to Cat
    ???// Cat cc=d;//cannot convert from Object to Cat
    ?????Cat ee=(Cat)d;
    ?cat.output();//if the method output() is undefined in class Cat,then the output would be "I am an animal"
    ?// a.speak(); //the method speak() is undefined for the type Animal
    ?}
    ??public static void??displayObject(Object obj){
    ???if(obj instanceof Cat)
    ????((Cat) obj).speak();
    ???else if(obj instanceof Dog)
    ????((Dog)obj).speak();
    ??}
    }
    class Animal{
    ?void?output(){
    ??System.out.println("I am an animal");
    ?}?
    }
    ?class Cat extends Animal{
    ??void speak(){
    ???System.out.println("喵喵~");
    ??}
    ?void?output(){
    ???System.out.println("I am a cat");
    ??}
    ??
    ?}
    ?
    ?class Dog extends Animal{
    ??void speak(){
    ???System.out.println("汪汪~");
    ??}
    ?void?output(){
    ???System.out.println("I am a dog");
    ???}
    ?}

    通过该程序,我有如下理解:

    1.父类对象可以强制转换为子类对象,但是前提是此父类对象为子类对象实例化的结果。

    e.g. Fruit fruit=new Apple();

    ?????Apple a=(Apple)fruit;//ok

    e.g. 假设Apple类继承于Fruit类,

    ?????Object fruit=new Fruit();

    ?????Object apple=(Apple)fruit;//wrong

    2.子类的实例向父类转型是为了实现多态。

    ?
    ?

  2. 图片文本最佳的封装方案

background2 = new JLabel(new ImageIcon(

????????????????MainUI.class.getResource("/com/nt/image/main.gif")));

????????Random rd = new Random();

????????stream = MainUI.class.getResourceAsStream("/com/nt/file/"

????????????????+ rd.nextInt(19) + ".txt");

????????try {

????????????read = new BufferedReader(new InputStreamReader(stream, "GBK"));

  1. 在panel里面设置背景图片

时间: 2024-10-29 19:08:05

Java每日学习笔记1的相关文章

java nio学习笔记(一)

位置保留,待用 java nio学习笔记(一),布布扣,bubuko.com

JAVA基础学习笔记(2)

看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog      //类名 { String name;  //变量的声明 int age; String color; void bark()   //方法的定义(返回值为空,不带参数) { System.out.println(

java排序学习笔记

前面写了js的排序实现,总得玩玩java的哈. 同样,冒泡.选择.快速(这三个之前实现过也写过文章).堆排序,然后做比较. 主要遇到的难点: - -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码.想想,还是javascript写起来方便: java的话,我想到的方法是写一个抽象类:抽象出排序方法,实现一个排序计时方法(该方法调用了抽象排序,但在先后排序时加入计时代码[感觉像是aop操作]): 接着所有排序类都继承这个抽象类,并实现排序方法,调用的时候直接调用继承的排序计时方

《深入Java虚拟机学习笔记》- 第4章 网络移动性

Java虚拟机学习笔记(四)网络移动性 <深入Java虚拟机学习笔记>- 第4章 网络移动性,布布扣,bubuko.com

《深入Java虚拟机学习笔记》- 第7章 类型的生命周期

一.类型生命周期的开始 如图所示 初始化时机 所有Java虚拟机实现必须在每个类或接口首次主动使用时初始化: 以下几种情形符合主动使用的要求: 当创建某个类的新实例时(或者通过在字节码中执行new指令,或者通过不明确的创建.反射.克隆和反序列化): 当调用某个类的静态方法时(即在字节码中执行invokestatic指令): 当使用某个类或接口的静态字段,或者对该字段赋值时(用final修饰的静态字段除外,它被初始化为一个编译时常量表达式): 当调用Java API中的某些反射方法: 当初始化某个

《深入Java虚拟机学习笔记》- 第13章 逻辑运算

<深入Java虚拟机学习笔记>- 第13章 浮点运算 <深入Java虚拟机学习笔记>- 第13章 逻辑运算,布布扣,bubuko.com

《深入Java虚拟机学习笔记》- 第12章 整数运算

Java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算.当byte.short和char类型值参与算术运算时,首先会将它们转换为int类型.这些操作码都不会抛出异常,溢出在这里通常可以被忽略. 整数加法 操作码 操作数 说明 iadd (无) 从栈中弹出两个int类型数,相加,然后将所得int类型结果压回栈 ladd (无) 从栈中弹出两个long类型数,相加,然后将所得long类型结果压回栈 将一个常量与局部变量相加 操作码 操作数 说明 iinc vindex

《深入Java虚拟机学习笔记》- 第2章 平台无关

Java虚拟机学习笔记(二)平台无关 <深入Java虚拟机学习笔记>- 第2章 平台无关,布布扣,bubuko.com

java JDK8 学习笔记——第16章 整合数据库

第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程序. 2.JDBC标准主要分为两个部分:JDBC应用程序开发者接口和JDBC驱动程序开发者接口.应用程序需要联机数据库,其相关API主要在java.sql和javax.sql两个包中. 3.应用程序使用JDBC联机数据库的通用语法: Connection conn = DriverManager.g