導航:首頁 > 編程語言 > javaswing游戲

javaswing游戲

發布時間:2023-05-08 19:04:39

1. java純粹用swing做的游戲會不會占很多內存

1、24M的內存在Java Swing程序里算是比較正常的。2、關閉一個Tab後,這個Tab上所使用的對象你銷毀了么?皮兆如果銷毀了,那麼你要等到JVM進行垃圾回收的時候才能看到內存減少(一般會在heap容量不夠的時候才會執行)。一個簡單的驗塌歷證方法是,你關閉該tab之後再次打開,內存如果沒有增多,說明是正常的。3、燃衫租在Java中,除非涉及到流操作,否則很難寫出來一個memory leak的程序......如果不放心可以使用jprofiler來檢測一下JVM,看看你創建的對象是不是過多。

2. 用swing編寫一個java抽獎的程序,至少有5個按鈕,顯得高大上一點。

‍

importjava.awt.Color;//界面不是很高大上檔次,但是能滿足你的基本需求,希望對你有用
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
importjavax.swing.border.Border;
importjavax.swing.border.LineBorder;
publicclass抽獎游戲extendsJFrame{
static抽獎游戲frame;
public抽獎游戲(){
setLayout(newGridLayout(3,3,3,3));
Borderborder=newLineBorder(Color.BLUE,4);
JButtonl1=newJButton();
JButtonl2=newJButton();
JButtonl3=newJButton();
JButtonl4=newJButton();
JButtonl5=newJButton();
JButtonl6=newJButton();
JButtonl7=newJButton("祝你好運");
JButtonl8=newJButton("中獎規則");
JButtonl9=newJButton("再次抽獎");
l1.setBorder(border);
l2.setBorder(border);
l3.setBorder(border);
l4.setBorder(border);
l5.setBorder(border);
l6.setBorder(border);
l7.setBorder(border);
l8.setBorder(border);
l9.setBorder(border);
String[]num2={"1","2","3","4","5","6"};
l8.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
JOptionPane.showMessageDialog(null,"游戲規則: "+"特等獎: "
+"第一行或者第二行出現的數字全部相同 "
+"第一第二行出現升序的1,2,3,4,5,6或者降序的6,5,4,3,2,1 "+"一等獎 "
+"1:第一行或第二行的數字降序排列或者升序排列 "
+"2:第一行或者第二行相鄰的按鈕出現一樣的數字 ");
}
});
l9.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
l1.setText("*");
l2.setText("*");
l3.setText("*");
l4.setText("*");
l5.setText("*");
l6.setText("*");
l7.setBackground(Color.lightGray);
l7.setText("離中獎不遠了!");
}
});
l6.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l5.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l4.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
Fontfont=newFont("",Font.BOLD,20);
l1.setFont(font);
l2.setFont(font);
l3.setFont(font);
l4.setFont(font);
l5.setFont(font);
l6.setFont(font);
l7.setFont(font);
l8.setFont(font);
l9.setFont(font);
add(l1);
add(l2);
add(l3);
add(l4);
add(l5);
add(l6);
add(l7);
add(l8);
add(l9);
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
frame=new抽獎游戲();
frame.setTitle("抽獎大戰");
frame.setSize(500,500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

3. JAVA Swing寫了一個飛機大戰小游戲,可是遇到了不會寫碰撞檢測的問題

敵機和 本機都添加一個Rectangle對象 Rectangle的坐標隨自身移動 多線程檢測 敵機集合的Rectangle是否與本機相撞 檢測方法是檢測一個Rectangle的四個角是否與在一個Rectangle的域中 或者直接用Rectangle的contains(Rectangle r) 檢測兩個Rectangle是否相交

4. 學Java有哪些可以練手的項目

1.各種管理系統

源碼下載(實例一):

jsp開發完整的博研圖書館後台管理系統,不使用框架開發的,太完美了

源碼下載(實例二):

javaWeb圖書館管理系統源碼mysql版本

源碼下載(實例三)

GitHub - uboger/LibraryManager: JAVA GUI 圖書館管理系統

源碼下載(實例四):

java swing開發企業人事管理系統源代碼下載

2.簡易的聊天系統

源碼下載(實例一):

java swing開發網路聊天室群聊系統,基於java多線程socket編程

源碼下載(實例二):

java swing開發大貓聊天室源碼,簡單易懂,適合java swing初學者

源碼下載(實例三):

java websocket開發簡單聊天室系統,實現群聊與一對一單人聊天案例

源碼下載(實例四):

jsp開發簡單聊天室demo-分享

3.實現通訊錄

java通訊錄實現了添加刪除和查找功能

源碼下載(二):

JAVA版通訊錄管理系統課程設計源碼

源碼下載(三):

Java Swing界面.完美設計通訊錄..有需要的下

4.坦克大戰

源碼下載(一):

俄羅斯方塊 JAVA版

源碼下載(二):

GitHub - FieldSoft-HelloClyde/Tetris-Swing: Swing編寫的俄羅斯方塊

源碼下載(三):

java swing開發的俄羅斯方塊游戲,包含完整代碼+詳細注釋

5.五子棋

源碼下載(一):

Java實踐(十一)——五子棋

源碼下載(二):

java swing開發的五子棋小游戲源碼

源碼下載(三):

java swing開發單機版五子棋源代碼下載

源碼下載(四):

Java五子棋演算法和代碼

6.中國象棋

源碼下載(一):Java實踐(十二)——中國象棋

7.貪吃蛇

java貪吃蛇源代碼 、 java貪吃蛇源代碼

以上是總結出來的簡單的練手項目,希望對你有幫助

5. 如果我用java做個小游戲比如五子棋。那麼界面怎麼弄啊,是不是用swing啊

不論是awt,swing都是JavaGUI的組成部分。
沒有人讓宴辯你單純的為了使用atw或晌老缺swing而特意去用。
用哪個能達到功能就有哪個。
並且這些東西混著用並不會照成太大的沖突。
使用JFrame作為主容器,JPanel作為主繪圖底板,基本上JavaGUI都含褲是這么設計的。

6. javaswing和java區別

javaswing和java區別。swing是javaGUI應轎薯缺用程序,也就是java做的桌面應用。運行swing程序要求用戶電腦上有java環境,這一點不太現實也不方便。現在的java主要以web方向為主,做移動應用和網站開發,分布式、多線程、高並發等都是java程序員發展的方向。企業開發中用到的不多,事實上在十幾年的開發生涯中沒有用到過,也沒有做swing的。但也不能說學習它就沒有用。比如swing中的控制項,如表格、樹、面板、菜單等控制項,各種事件如鍵盤、滑鼠事件。結合AWT繪圖,可以自己寫一些小游戲。至於界面好不好看,一方面要找到好的素材,另一方面要有專業的美工配合開發人員。畢竟開發人員注重的是業務邏輯而不是頁面美化,所謂術業有專攻。SWING+AWT做一些小游戲,練習線程的使用,做游閉辯戲的時候可以用到Rectangle實現碰撞監測,練習一些業務邏輯的封裝。能快速的看到運行結果,對於初學者來講,比較容易獲得成就感。畢竟如果做web開手棗發,在看到頁面之前,我們要學習java、servlet、jsp、html、js、css等,過程很漫長。swing中的事件模型、窗體、布局等,在很多web的前端。

7. JAVA可以編寫游戲嗎

Java可以編寫游戲, 但是編寫游戲並不是Java最擅長的地方..一般的大中型游戲,可能是匯編回,c#,c/c++編寫.. 而後答端往往使用java. 當然了純java也可以製作一些簡單的游戲的..

一: 手機游戲上面

1) J2ME 製作的游戲, 適用於 諾基亞 ,三星 等可以運行的jar格式的手機. 在諾基亞時代曾經風行一時. 但後來隨著IOS和Android的興起, J2ME逐漸衰落...

2) Android平台也可以使用Java編寫程序和游戲...

二: PC游戲上面

1) awt/swing 等傳統的圖形界面技術, 也可以編寫一些簡單的游戲,比如泡泡堂, 超級瑪麗等游戲,

2) javaFX 框架,支持硬體加速, 相比awt/swing更加現代化, 更強大的功能和web支持

三: 網頁游戲方面

1) awt/swing 寫的Applet 游戲, 曾經可以在瀏覽器上運行. 但是由於安全隱患, 很多瀏覽器已經默認不支持了.

拓展: 如果想用java製作RPG游戲或者比較復雜的游戲 , 也可以使用一些開源的游戲框架.

8. java中學習了swing可以做一個什麼項目

游戲: 五子棋,坦克游戲, 等, 主要就是熟悉 線程和繪圖內 和MVC架構容 .

IM: 聊天軟體, 主要熟悉網路編程: 客戶端,伺服器端編程

工具: 密碼管理器, 熟悉 加密 解密演算法.

所以我們的重點還是要放在熟悉java的各種基礎知識上.

9. Java SWING處理鍵盤上下左右事件

static intVK_KP_DOWN
用於數字鍵盤向下方向鍵的常量。static intVK_KP_LEFT
用於數字鍵盤向左方向鍵的常量。static intVK_KP_RIGHT
用於數字鍵盤向右方向鍵的常量。static intVK_KP_UP
用於數字鍵盤向上方向纖簡鍵的常量。static intVK_LEFT
用於非數字鍵盤向左方向鍵的常量。static intVK_UP
用於非數字鍵盤向上方向鍵的常量。static intVK_RIGHT
用於隱豎斗非數字鍵盤向灶磨右方向鍵的常量。static intVK_DOWN
用於非數字鍵盤向下方向鍵的常量。

10. 利用 Java Swing 實現游戲開發

Swing初體驗 對於想學習Swing編程的朋友 我們特地為大家准備了一些小竅門 首先 下載並閱讀代碼是極有必要的 由於這是一篇關於Swing的教程 所以 我們只是盡可能講解一些與Swing有關的內容 與Swing無關的內容一般不會涉及 例如演算法部分 其次 受篇幅限制 也不可能在這里將每部分代碼都寫得完完整整的 所以 大家也需要對照完整代碼來看 最後 為了使大家更容易把精力集中在Swing學習上 我們也將游戲開發中所需資源放在下載文件中 大家下載後便能夠編譯運行 看到執行結果 (下載游戲源文件) 頂層容器 什麼是頂層容器?當我們使用Java進行圖形編程的時候 圖在哪裡繪制呢?我們需要一個能夠提供圖形繪制的容器 這個容器就被稱為頂層容器 你也可以把它想像成一個窗口 頂層容器是進行圖形編程的基礎 一切圖形化的東西 都必然包括在頂層容器中 在Swing中 我們有三種可以使用的頂層容器 它們分別是:JFrame:用來設計類似於Windows系統中的窗口形式的應用程序 JDialog:和JFrame類似 只不過JDialog是用來設計對話框 JApplet:用來設計可以在嵌入在網頁中的Java小程序 如果需要使用Swing製作一個窗口類程序 我們的代碼看起來應該是這樣:import javax swing *;public class KyodaiUIextends JFrame {……} 控制項 控制項是構成應用程序界面的基本元素 按鈕 文本框 進度條等 這些都是控制項 控制項(這里我們只討論可視化控制項)又可以分為容器控制項和非容器控制項 從字面意義上來理解 容器控制項就是能包含其他控制項的特殊控制項 例如 Java中的JPanel控制項就屬於容器型控制項 我們可以在JPanel中放置按鈕 文本框等非容器控制項 你甚至可以在JPanel中再放置若干個JPanel控制項(值得注意的是 頂層容器也是容器型控制項 每一個窗口應用程序中有且只能有一個頂層容器控制項 換句話說 頂層容器不能包括在其他的控制項中) Java中的容器控制項有很多 除剛才提到的JPanel外 還有JTabbedPane JScrollPane等 非容器控制項有JButton JLabel JTextField等 如果你需要向某個容器型的控制項中添加控制項 你可以使用 add(Component p) 方法來實現 如:JPanel panel = new JPanel();JButton button = new JButton();panel add(button); 布局 什麼是布局?布局是Java中用來控制控制項排列位置的一種界面管理系統 使用過其他可視化編程開發語言的人在初次接觸Java界面設計時 總會感覺到Java界面設計很別扭:居然沒有提供所見即所得的設置控制項坐標的方法!然而 事實證明 Java本身提供的布局管理系統也一樣能夠出色地完成我們的需要 而且在跨平台時表現得更有優勢 常用的布局有:BorderLayout:將界面分割為上下左右以及中間一塊區域的管理系統 在BorderLayout布局中 最多你只能放 個控制項 如果超過 個控制項 建議還是選用其他的布局系統吧 GridLayout:GridLayout是將用戶界面切割為棋盤一樣的布局管理系統 如果我們要設計一個類似於Windows中自帶的計算器軟體 GridLayout無疑是最佳選擇 FlowLayout:FlowLayout與上述兩類布局管理系統不太一樣 在FlowLayout中 你不必指定每個控制項放在哪 你只需要把控制項加入到FlowLayout中 FlowLayout就會根據你添加控制項的順序依次放置控制項 如果空間不夠 會自動換行 在對這幾個布局管理系統有了基本認識後 我們就一起來進入界面設計吧 在仔細觀察了QQ游戲中 連連看 的設定後 我們可以發現 整個界面分為三個區 頂部是系統菜單區 佔地面積最大的是用戶游戲區 另外還有一個用戶交互區 每個區域中都由若干控制項組成 這么多控制項 我們從哪開始入手呢?由於容器控制項中可以放置其他控制項 因此 我們只需要先確定放置的容器控制項就可以了 既然已經知道需要使用容器控制項的個數 接下來讓我們就進入布局管理系統的選擇 用GridLayout?似乎有點勉強 用FlowLayout?還有更好的選擇嗎?對了 我想你一定想到了是BorderLayout吧 如下圖 所示 動手之前 大家一定要注意的是 界面的設計要先考慮好尺寸 不管是主程序界面的大小還是每個區域的大小 如果沒有設計好合適的尺寸 將來改動起來會十分痛苦 下面便是相應的源程序:import java awt *;import javax swing *;public class KyodaiUI extends JFrame {public KyodaiUI() {this setSize( ); //將窗體的大小設定為 * this setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);this setResizable(false); //窗體不能改變大小this setTitle( 連連看 ); //設置標題JPanel toolBar = new JPanel();toolBar setBackground(Color white);toolBar setPreferredSize(new Dimension( ));JPanel actionPanel = new JPanel(); //新建JPanel型的控制項actionPanel setBackground(Color yellow); //設置背景色actionPanel setPreferredSize(new Dimension( )); //設置大小JPanel contentPanel = new JPanel();contentPanel setBackground(Color blue);contentPanel setPreferredSize(new Dimension( ));this getContentPane() add(toolBar BorderLayout NORTH);this getContentPane() add(actionPanel BorderLayout EAST);this getContentPane() add(contentPanel BorderLayout CENTER);}public static void main(String[] args) throws HeadlessException {KyodaiUI kyodaiUI = new KyodaiUI();kyodaiUI show();}}讓我們來看看上面這段程序是如何運行的 首先 extends JFrame表明了這是從JFrame中繼承過來的 JFrame是最基本的頂層容器控制項 實際上 在JDK中 以字母J打頭的控制項都是Swing控制項 然後設置了容器的屬性 其中 setDefaultCloseOperation(JFrame EXIT_ON_CLOSE)是用來告訴Java虛擬機 當用戶點擊窗體右上角的 關閉 按鈕時 關閉該窗口進程 如果不這么做的話 你會發現雖然你可以點將窗口關閉 然而程序卻沒有退出 在接下來的代碼中 我們為頂層容器添加了三個Panel容器 要注意的是 在AWT中 我們可以直接寫為add(toolBar BorderLayout NORTH) 而在 Swing 中卻一定要寫成getContentPane() add(toolBar BorderLayout NORTH) 否則程序就會出錯 現在大家可以放在編譯運行看看 是不是和我的運行結果一樣(見圖 )? 邊框 雖然我們使用了不同前景色來區別不同的區域 然而卻沒有層次感 加上邊框一定會漂亮許多 在Java中 所有以J打頭的Swing控制項都可以使用setBorder方法來為自己設置邊框 邊框有很多種 線型 凸起 凹下 空的 你甚至可以自由組合形成個人風格 所有的Border都必須使用javax swing BorderFactory中提供的靜態方法來創建 比如:Border border = BorderFactory createBevelBorder(BevelBorder LOWERED new Color( ) new Color( ) new Color( ) new Color( ));現在 我們將toolBar setBackground(Color white)改為toolBar setBorder(border) 立體效果是不是已經出現了?實戰??寫上自己的大名現在我們已經有了一個能夠運行的界面了 雖然它什麼也做不了 但是請你別慌 羅馬不是一天建成的 現在讓我們在菜單區提供一個 關於 菜單 用來顯示程序的信息 難道你不想讓別人知道你的大名嗎?Swing本身就提供了現成的按鈕控制項JButton 我們只需要創建一個新的按鈕:JButton about = new JButton( 關於 );這個按鈕該怎麼放到菜單區而不是別的地方呢?我們可以加入下面的代碼:toolBar add(about);咦 怎麼點按鈕沒有反應?這是因為你還沒有告訴程序點擊按鈕時要做什麼事情呢 要為按鈕添加事件響應 首先需要使用about addActionListener(this)來告訴程序監聽按鈕按下時的事件 由於ActionListener是一個程序介面 因此 我們在類的申明的地方也得做一點小小的修改:public class KyodaiUI extends JFrame implements ActionListener { }實現ActionListener介面是為了告訴程序我要進行事件處理了 當然 最後我們得添加響應事件的代碼:public void actionPerformed(ActionEvent e) {if (e getSource() == about) {JOptionPane showMessageDialog(this 我的大名 關於 JOptionPane INFORMATION_MESSAGE);return ;}}其中 e getSource() 表示當前觸發事件的控制項 由於我們的程序中往往會有多個以上的控制項 這些控制項都有可能產生事件 所以我們必須使用這個方法來找到產生事情的控制項 小結 讓我們一起來回顧一下今天所學的內容:首先我們了解了頂層容器 也知道了控制項分為容器控制項和非容器控制項 同時還知道使用邊框 最後 我們還小小的處理了一下按鈕的事件 學而時習之 不亦說乎 就讓我留點小小的作業 幫助大家鞏固一下今天所學的內容:上面我們添加的按鈕在菜單欄的中間 並不美觀 lishixin/Article/program/Java/hx/201311/25907

閱讀全文

與javaswing游戲相關的資料

熱點內容
linux文件系統的結構 瀏覽:87
電腦里文件怎麼刪除文件夾在哪裡 瀏覽:876
1602顯示屏代碼 瀏覽:834
proface密碼 瀏覽:190
什麼app幫別人買感冒葯 瀏覽:365
華為終端客服微信 瀏覽:33
文件後面加內容應該怎麼取名 瀏覽:959
可以學會講白話的app有哪些 瀏覽:332
mysql資料庫navicat 瀏覽:246
word如何固定文本框 瀏覽:974
什麼文件轉換為pst 瀏覽:76
編程在哪裡好找工作 瀏覽:177
電腦圖標上有個文件 瀏覽:832
筆記本i5系統重裝教程 瀏覽:472
文件如何變白 瀏覽:679
長城c30加裝導航升級 瀏覽:648
壓縮包會改變文件內容么 瀏覽:548
45度面槽怎麼編程 瀏覽:742
蘋果6原裝充電器多大的 瀏覽:814
騰訊群文件 瀏覽:584

友情鏈接