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.pswp.cn/news/451481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451481.shtml
英文地址,請注明出處:http://en.pswp.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;在錯誤發生后腳本會停止…