JAVA自学笔记25

JAVA自学笔记25

1、GUI
1)图形用户接口,以图形的方式,来显示计算机操作的界面,更方便更直观
2)CLI
命令行用户接口,就是常见的Dos,操作不直观
3)
类Dimension
类内封装单个对象组件中组件的宽度和高度(精确到整数)
Dimension(int width,int height);
类Point

//窗体案例
Frame f=new Frame();//也可通过带参构造设置标题String title,//设置窗体标题
f.setTitle("dd");
//设置窗体大小
//f.setSize(100,200);
Dimension d=new Dimension(100,200);
//设置窗体位置//f.setLocation(400,200);
Point p=new Point(400,200);
f.location(p);//f.setBounds(int x.int y,int width,int height);//同时设置坐标及长宽Thread.sleep(3000);//休眠3秒再弹出
f.setVisible(true);

2、事件监听器
1)把事件源和事件关联起来
2)

//窗体关闭案例
Frame f=new Frame();
f.setTitle("dd");
f.setBounds(100200300,400);/
Thread.sleep(3000);
//事件监听
f.addWindowListener(new WindowListener()
{
public void WindowClosing(WindowEvent e){
System.exit(0);
}
});
f.setVisible(true);

3)适配器设计模式
接口须重写方法较多且不需都实现时,可提供一个适配器类(仅仅空实现即可),在实现类重写即可
接口–适配器–实现类

WindowAdapter
适配器类

//窗体关闭案例
Frame f=new Frame();
f.setTitle("dd");
f.setBounds(100200300,400);
Thread.sleep(3000);f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
f.setVisible(true);

4)布局
这里写图片描述

//窗体添加按钮并对按钮添加事件
//使用流式布局
Frame f=new Frame();
f.setTitle("dd");
f.setBounds(100200300,400);
Thread.sleep(3000);
//设置布局为流式布局
f.setLayout(new FlowLayout());//创建按钮对象
Button bu=new Button("按钮");
bu.setSize(10,20);//把按钮添加到窗体//设置窗体可以关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});//设置点击事件
bu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("success");
}
});
f.setVisible(true);
//把文本框的值转移到文本域
//创建窗体对象
Frame f=new Frame("数据转移");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建文本框
final TextField tf=new TextField(20);//文本框内可放20个字符
//创建按钮
Button bu=new Button("数据转移");
//创建文本域
final TextAreas ta=new TextArea(10,40);
//
//对按钮添加事件
bu.addActionListener(new ActionListener)(){
ppublic void actionPerformed(ActionEvent e){
//获取文本框的值
String tf_str=tf.getText().trim();//设置给文本域并换行
ta.append(tf_stf+"\r\n");
}
//获取光标
tf.requestFocus();//清空文本框数据
tf.setText("");
});
//把组件添加到窗体
f.add(tf);
f.add(bu);
f.add(ta);//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
//设置窗体显示
f.setVisible(true);
//更改背景色
//创建窗体对象
final Frame f=new Frame("更改背景色");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建四个按钮
Button redButton=new Button("red");f.add(redButton);//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
//对按钮添加动作事件
/*redButton.addActionLostener(new ActionLister(){
public void actionPerformed(ActionEvent e){
f.setBackground(Color.RED);
}
});*///对按钮添加鼠标点击事件
/*redButton.addMouseListener(new MouseAdapter(){
public mouseClicked(MouseEvent e){
f.setBackground(color.RED);
}
});*///对按钮添加鼠标的进入事件
redButton.addMouseListener(new MouseAdapter)(){
public void mouseEntered(MouseEvent e){
f.setBackground(color.RED);
}
});//对按钮添加鼠标的离开事件
redButton.addMouseListener(new MouseAdapter)(){
public void mouseExited(MouseEvent e){
f.setBackground(color.WHITE);
}
});//设置窗体显示
f.setVisible(true);
//控制文本框只能输入数字字符
//创建窗体对象
final Frame f=new Frame("只能输入数字字符");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建Label标签对象
Label label=new Label("请输入QQ号码仅为数字");
TextFiled tf=new TextField(40);//为文本框添加事件
tf.addKeyListener((new) KeyAdapter({
public void KeyPressed(KeyEvent e){
char ch=e.getKeyChar();
if(!(ch>='0'&&ch<='9')){}
e.consume();//使用此事件,以便不会按照默认的方式由产生的源代码来处理此事件
}
});//添加到窗体上
f.add(label);
f.add(tf);//设置窗体显示
f.setVisible(true);
//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});

菜单组件:
这里写图片描述
这里写图片描述

//一级菜单案例
//创建窗体对象
final Frame f=new Frame("只能输入数字字符");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建菜单栏
MenuBar mb=new MenuBar();//创建菜单
Menu m=new Menu("文件");
//创建菜单项
MenuItem mi=new MenuItem("退出系统");
//
m.add(mi);
mb.add(m);//设置菜单栏
f.setMenuBar(mb);mi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});//设置窗体显示
f.setVisible(true);
//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
//设置多级别菜单
final Frame f=new Frame("设置多级菜单");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建菜单栏
MenuBar mb=new MenuBar();//创建菜单
Menu m1=new Menu("文件");
Menu m2=new Menu("更改名称");
//创建菜单项
MenuItem mi1=new MenuItem("退好好学习");
MenuItem mi2=new MenuItem("天天向上");
MenuItem mi3=new MenuItem("恢复标题");
MenuItem mi4=new MenuItem("退打开记事本");
MenuItem mi5=new MenuItem("退出系统");
//
m2.add(mi1);
m2.add(mi2);
m2.add(mi3);m1.add(m2);
m1.add(mi4);
m1.add(mi5);//设置菜单栏
f.setMenuBar(mb);//设置事件
mi5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});//设置事件
mi4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Runtime r=Runtime.getRuntime();
r.exec("notepad");
}
});//设置事件
mi1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle(mi1.getLabel());
}
});//设置事件
mi2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle("多级菜单");
}
});//设置事件
mi3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle(mi1.getLabel());
}
});//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});//设置窗体显示
f.setVisible(true);

4、Netbeans
1)界面开发常用

//修改窗体图标
public class UiUtill{
private Uiutil(){}
public static void setFrameImage(JFrame jf){
//获取工具类对象
Toolkit tk=ToolKit.getDefaultToolKit();
//根据路径获取图片
Image i=tk.getImage("src\\cn\\itcast\\resource\\a.jpg");
//给窗体设置图片
jf.setIconImage(i);}
}

这里写图片描述

//设置窗体居中
//获取工具对象
Toolkit tk=Toolkit.getDefaultTookit();//获取屏幕宽高
Dimension d=tk.getScreenSize();
double screenWidth=d.getWidth();
double screenHeight=d.getHeight();
//获取窗体宽高
int frameWidth=jf.getWidth();
int frameHeight=jf.getHeight();//获取新的宽高
int width=(int)(screenWidth-frameWidth)/2;
int height=(int)(screenHeight-frameHeight)/2;

转载于:https://www.cnblogs.com/Tanqurey/p/10485337.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

360——新式的流氓

360确实是一种新式的流氓。提供一些很多用户有用的工具&#xff0c;然后在同时&#xff0c;也提供一些流氓性的工具或者流浪性的推广方法&#xff0c;比如&#xff1a;对360浏览器&#xff0c;360桌面等工具&#xff0c;通过暗示性的广告语进行推广&#xff0c;而对于安装的诸多…

跳板机

现在一定规模互联网企业&#xff0c;往往都拥有大量服务器&#xff0c;如何安全并高效的管理这些服务器是每个系统运维或安全运维人员必要工作。现在比较常见的方案是搭建堡垒机环境作为线上服务器的入口&#xff0c;所有服务器只能通过堡垒机进行登陆访问&#xff0c;合格的堡…

Map是不是集合?

Map是不是集合&#xff1f; 一、起因 今天在一个群里跟几位朋友就“map是不是集合“”争执了起来&#xff1b;几位朋友一致认为map不是集合&#xff0c;他们说只有Collection接口下的才是集合&#xff0c;而我认为Collection和Map下的实现类都是集合类。二、发展 于是我开始在…

JAVA自学笔记08

JAVA自学笔记08 1、构造方法私有&#xff0c;外界就不能再创建对象 2、说明书的制作过程 1&#xff09;写一个工具类&#xff0c;在同一文件夹下&#xff0c;测试类需要用到工具类&#xff0c;系统将自动编译工具类&#xff1b;工具类的成员方法一般是静态的&#xff0c;因此…

创业,不能兼职

一直在寻找靠谱的技术人才加入自己的创业团队。这个靠谱&#xff0c;不仅是技术靠谱&#xff0c;还要有相同的价值观。价值观的概念也很广泛&#xff0c;除了人品&#xff0c;还有对一些涉及到做人做事最本质的一些理念要相同。最起码的一条是&#xff0c;你是不是真的想好了决…

Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

转载 http://www.cnblogs.com/skywang12345/p/3308852.html转载于:https://www.cnblogs.com/lizhouwei/p/9162251.html

@Controller和@RestController的区别

RestController注解相当于ResponseBody &#xff0b; Controller合在一起的作用。 1)如果只是使用RestController注解Controller&#xff0c;则Controller中的方法无法返回jsp页面&#xff0c;配置的视图解析器InternalResourceViewResolver不起作用&#xff0c;返回的内容就是…

spring AOP解说

1.aop切面编程就是在常规的执行java类中方法前或执行后加入自定义的方法。 比如你本来每天都去打酱油&#xff0c;去&#xff0c;打酱油&#xff0c;回。 现在我每天在你打酱油路上等着&#xff0c;你去打酱油的时候我打你一顿&#xff0c;回来的时候给你点糖果吃。 你根本不…

接口 EnvironmentAware

凡是被Spring管理的类&#xff0c;实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时&#xff0c;获取到系统环境变量和application配置文件中的变量。

简单安装ELK分析日志及使用心得

ELK是由Elasticsearch、Logstash、Kibana三个组件组成的。Elasticsearch&#xff1a;是ELK的核心插件&#xff0c;是一个基于Lucene的搜索服务器&#xff0c;它提供一个分布式多用户能力的全文搜索引擎&#xff0c;能够达到实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0…

寄生式创业更容易成功

上次参加站长大会见识了不少创业团队和个人站长&#xff0c;他们中许多人都曾有过或正在过着苦逼的日子&#xff0c;不过我见到更多的还是他们风光的一面&#xff0c;在这次大会我见到了很多成功的创业团队&#xff0c;例如专门做微博营销的团队、依附于QQ空间的团队、专做腾讯…

JS单引号嵌套的问题,怎么改才能对呢!

JS单引号嵌套的问题&#xff0c;怎么改才能对呢&#xff01; https://zhidao.baidu.com/question/416584343.html document.getElementById(celbid).innerHTML<inputname""type"text"οnblur"celchangeb(celaid,celbid);">;这段代码是JS显…

@RequestParam的作用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 MVC另外一个特性是其提取和解析请求参数的能力。让我们继续重构上面的方法&#xff0c;并在其中添加RequestParam注解&#xff1a; Requ…

前端入门教程(七)CSS属性设置

宽和高 width属性可以为元素设置宽度。 height属性可以为元素设置高度。 块级标签才能设置宽度&#xff0c;内联标签的宽度由内容来决定。 字体属性 文字字体 font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体&#xff0c;则会尝试下一个…

java 深入了解DTO及如何使用DTO

这篇文章主要来谈论一下DTO使用的场合及其带来的好处。首先要理解DTO是什么&#xff1f; DTO就是数据传输对象(Data Transfer Object)的缩写。DTO模式&#xff0c;是指将数据封装成普通的JavaBeans&#xff0c;在J2EE多个层次之间传输。 DTO类似信使&#xff0c;是同步系统中…

图解CPU发展史

随着科学技术和人们对物质水平要求的不断提高&#xff0c;CPU作为电脑的核心组件&#xff0c;也发生了翻天覆地的变化&#xff0c;从1971年只有2300颗晶体管的Intel 4004微处理器到现在的以亿为单位的Intel i7处理器&#xff0c;科技发展的步伐从未停止&#xff0c;随着对原有技…

1031 查验身份证

题目链接&#xff1a;https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392 题解&#xff1a; 1 #include <iostream>2 #include<cstdio>3 #include<string>4 using namespace std;5 6 int main() {7 int weigth[] { 7,9,10…

漫谈程序员系列:一张图道尽程序员的出路

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 《推背图》相传由唐太宗时期的司天监李淳风和袁天罡合著&#xff08;此两人其实是超级武学高手&#xff0c;参见小椴的《开唐》&#xf…

使用@Order调整配置类加载顺序

4.1 Order Spring 4.2 利用Order控制配置类的加载顺序 4.2 演示 两个演示bean package com.wisely.spring4_2.order;public class Demo1Service {}package com.wisely.spring4_2.order;public class Demo2Service {}两个配置类,注意Order配置加载的顺序 package com.wisely.…

[php] 高级教程

include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。 include 和 require 除了处理错误的方式不同之外&#xff0c;在其他方面都是相同的&#xff1a; require 生成一个致命错误&#xff08;E_COMPILE_ERROR&#xff09;&#xff0c;在错误发生后脚本会停止…