導航:首頁 > 編程語言 > java7實例

java7實例

發布時間:2023-12-26 10:20:49

Ⅰ 如何在java程序中,當點擊一個按鈕後,關閉當前窗口,開啟一個新的窗口。

java中一般使用swing 和awt技術來實現圖形界面,Swing組件較多,功能比較強大,所以這里使用Swing組件來實現。窗口使用(JFrame),按鈕使用(JButton)。


兩個窗口關聯並且跳轉,最常見的場景就是登陸了。

登陸窗口,輸入用戶名和密碼,如果成功就跳轉到主窗口


但是隱藏窗口,會在後面浪費系統資源。

如果不再使用該窗口,應該徹底銷毀(dispose();),釋放系統資源


LoginFrame 類

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

//LoginFrame登陸窗口功能實現用戶登陸,如果成功就跳轉
//LoginFrame繼承於窗口類,並實現ActionListener介面
{
//申明需要的組件
JButtonjb1,jb2;//按鈕
JTextFieldjtf1;//文本框
JPasswordFieldjpf1;//密碼框

publicLoginFrame(){
//窗口屬性的設置
setTitle("登陸窗");//窗口標題
setSize(300,180);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//關閉窗口則退出虛擬機
setLayout(newFlowLayout());//設置布局流式布局

JPaneljp=newJPanel(newGridLayout(4,1));//設置面板為表格布局4行1列
//第一行
JPaneljp1=newJPanel();
JLabeljl1=newJLabel("賬號");
jtf1=newJTextField(12);
jp1.add(jl1);
jp1.add(jtf1);
jp.add(jp1);
//第二行
JPaneljp2=newJPanel();
JLabeljl2=newJLabel("密碼");
jpf1=newJPasswordField(12);
jp2.add(jl2);
jp2.add(jpf1);
jp.add(jp2);
//第三行
JPaneljp3=newJPanel();
jb1=newJButton("登陸");
jb1.addActionListener(this);//添加動作響應器
jb2=newJButton("重置");
jb2.addActionListener(this);//添加動作響應器
jp3.add(jb1);
jp3.add(jb2);
jp.add(jp3);
//第四行
JPaneljp4=newJPanel();
JLabeljl3=newJLabel("提示:賬號admin密碼123");
jl3.setForeground(Color.DARK_GRAY);
jp4.add(jl3);
jp.add(jp4);

add(jp);

}

//動作響應
publicvoidactionPerformed(ActionEvente){
Stringcmd=e.getActionCommand();//根據動作命令,來進行分別處理
if(cmd.equals("登陸")){
Stringid=jtf1.getText();//取得用戶名
Stringkey=newString(jpf1.getPassword());//取得密碼
if(id.equals("admin")&&key.equals("123")){//判斷是否登錄成功
//如果登錄成功
setVisible(false);//本窗口隱藏,
newMainFrame(id).setVisible(true);//新窗口顯示
dispose();//本窗口銷毀,釋放內存資源
}else{
//如果登錄失敗彈出提示
JOptionPane.showMessageDialog(this,"用戶名或者密碼錯誤.","通知",JOptionPane.ERROR_MESSAGE);
clearText();//清空文本框密碼框的輸入
}
}elseif(cmd.equals("重置")){
clearText();
}

}

privatevoidclearText(){//清空文本框,密碼框的輸入
jtf1.setText("");
jpf1.setText("");
}

//main方法,程序的入口
publicstaticvoidmain(String[]args){
newLoginFrame().setVisible(true);//創建登錄窗口,並可見
}

}

MainFrame類

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

{

publicMainFrame(Stringname){
setTitle("主窗口");//標題
setSize(300,260);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPaneljp=newJPanel();
JLabeljl1=newJLabel("歡迎");
JLabeljl2=newJLabel(name);
jl2.setForeground(Color.BLUE);//設置文本顏色
JLabeljl3=newJLabel("使用系統.");
jp.add(jl1);
jp.add(jl2);
jp.add(jl3);
add(jp,BorderLayout.NORTH);
JTextAreajta=newJTextArea();
jta.setLineWrap(true);
jta.append("消息提示");
jta.append("消息!通知~!");
JScrollPanejsp=newJScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
add(jsp);
JPaneljp2=newJPanel();
JButtonjb=newJButton("退出");
jb.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);//退出
}
});
jp2.add(jb);
add(jp2,BorderLayout.SOUTH);
}

}


Ⅱ java7,8的幾個特性(自己的理解,大神們多指

JDK 1.7部分新特性
1)switch支持String類型 本質上是對int類型的匹配,
實現原理為:通過case後面的str對象調用hashcode()方法,得到一個int類型的hash值,然後用這個hash值來唯一標識這個case.當匹配時,首先調用這個字元串的hashcode()方法,獲得一個hash值,用這個hash值與case匹配,若沒有則不存在,若有則接著調用equals()方法進行匹配。String變數不能為null ,case後的字元串也不能為null ,否則會出現NullPointerException.
2)可以在catch中捕獲多個異常
3)對數值字面量進行了改進

try(InputStreamfis=newFileInputStrean("input.txt");){while(fis.read()!=1){
System.out.println(fis.read());
}
}catch(Exceptione){
e.printStackTrace();
}

DK 1.8 部分新特性
1)增加了Lambda表達式的支持 Lambda表達式是一個匿名函數 允許把函數作為一個方法的參數
示例

Arrays.AsList(2,8,1).forEach(i->System.out.println(i));//1
Arrays.AsList(2,8,1).forEach((Integeri)->System.out.println(i));//2

在java8以前 對於列表的排序 如果有自定義的類 則需要制定自定義的排序方法

Person[]people={newPerson("Iack",22),newPerson("Tony",35)};
Arrays.sort(people,newComparator<Person>(){//自定義排序方法new一個Conparator重寫compare方法
@Overridepublicintcompare(Persona,Personb){returna.getAge()-b.getAge();
}
});for(Personp:people){
System.out.println(p);
}

Lambda表達式

Arrays.sort(people,(Persona,Personb)->a.getAge()-b.getAge());
Arrays.sort(people,(a,b)->a.getAge()-b.getAge());

Lambda表達式是通過函數式介面實現的 (只有一個方法的普通介面)。函數式介面可以隱式的轉換為Lambda表達式,為了與普通的介面區分開,增加了註解@FunctionalInterface

@FunctionalInterfaceinterface
fun{
voidf();
}

2)介面增加了方法的默認實現和靜態方法 JDK1.8通過使用關鍵字 default可以給介面中的方法添加默認實現,此外,介面中還可以定義靜態方法。

interfaceIn8{
voidf();
defaultvoidg(){
System.out.println("default");
}
staticvoidh(){
System.out.println("static");
}
}

引入介面默認方法實現 是為了實現介面升級 在原有的設計中,如果想要升級介面,例如給介面中添加一個新的方法,會導致所有實現這個介面的類都需要被修改。

3)方法引用 方法引用指的是可以直接使用java類或對象的方法

Arrays.sort(people,Comparator.comparing(Person::getAge));

方法引用共有下面四種方式

更多的特性,請J對比JAVA下7以及8的JDK的相關內容

Ⅲ java7什麼意思

Java 7,代號「海豚(Dolphin)」,是Java歷史上一次非常重大的版本更新。Java 7 由Sun公司(2009年4月20日被Oracle以74億美元收購)於2011年7月7日首次推出,並於2011年7月28日正式面向開發人員發布。Java 7 的開發周期分為13個階段,並於2011年2月18日全部達成。平均每個階段又更新發布了8個內部小版本,每個版本主要進行功能增強和bug修復

Ⅳ java jre7如何設置環境變數

1. 安裝JDK 選擇安裝目錄 安裝過程中會出現兩次 安裝提示 。第一次是安裝 jdk ,第二次是安裝 jre 。建議兩個都安裝在同一個java文件夾中的不同文件夾中。(不能都安裝在java文件夾的根目錄下,jdk和jre安裝在同一文件夾會出錯)

如下圖所示

閱讀全文

與java7實例相關的資料

熱點內容
mfc深入淺出從mfc設計到mfc編程 瀏覽:77
螢石雲伺服器連接設置 瀏覽:323
中國名著pdf 瀏覽:590
華為伺服器設備序列號怎麼看 瀏覽:317
跑永輝生活配送用什麼app 瀏覽:147
ug識別符號命令在哪裡 瀏覽:717
pdf文件改文字 瀏覽:732
查詢qq號劍靈伺服器地址 瀏覽:552
國家反詐中心app為什麼要刷臉 瀏覽:303
iphone怎麼修改dns伺服器地址 瀏覽:85
bandizip解壓位置 瀏覽:168
伺服器的防火牆如何訪問 瀏覽:306
javagoto關鍵字 瀏覽:847
廣州少兒編程加盟排名榜 瀏覽:122
51單片機th0 瀏覽:290
冠軍交易pdf 瀏覽:208
excelword轉換成pdf 瀏覽:389
安卓10制空霸權怎麼打開 瀏覽:263
視唱練耳用什麼app好 瀏覽:589
有兩個項目要部署在雲伺服器上 瀏覽:930