package com.fruitking.test;
10年積累的成都網(wǎng)站制作、成都網(wǎng)站建設經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有澄邁免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
//下面是程序中需要引入的其他類。這些jdk提供
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/*
* ComboBoxDemo.java is a 1.4 application that uses these additional files:
* images/Bird.gif
* images/Cat.gif
* images/Dog.gif
* images/Rabbit.gif
* images/Pig.gif
*/
//定義了一個繼承JPanel的類,有實現(xiàn)了接口ActionListener
public class ComboBoxDemo extends JPanel
implements ActionListener
{
JLabel picture;
//定義了一個方法ComboBoxDemo
public ComboBoxDemo()
{
super(new BorderLayout());
String[] petStrings = { "Bird", "Cat", "Dog", "Rabbit", "Pig" };
//Create the combo box, select the item at index 4.
//Indices start at 0, so 4 specifies the pig.
JComboBox petList = new JComboBox(petStrings);
petList.setSelectedIndex(4);
petList.addActionListener(this);
//Set up the picture.
picture = new JLabel();
picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
picture.setHorizontalAlignment(JLabel.CENTER);
updateLabel(petStrings[petList.getSelectedIndex()]);
picture.setBorder(BorderFactory.createEmptyBorder(10,0,0,0));
//The preferred size is hard-coded to be the width of the
//widest image and the height of the tallest image + the border.
//A real program would compute this.
picture.setPreferredSize(new Dimension(177, 122+10));
//Lay out the demo.
add(petList, BorderLayout.PAGE_START);
add(picture, BorderLayout.PAGE_END);
setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
}
/** Listens to the combo box. */
public void actionPerformed(ActionEvent e)
{
JComboBox cb = (JComboBox)e.getSource();
String petName = (String)cb.getSelectedItem();
updateLabel(petName);
}
protected void updateLabel(String name)
{
ImageIcon icon = createImageIcon( name + ".gif");
picture.setIcon(icon);
picture.setToolTipText("A drawing of a " + name.toLowerCase());
if (icon != null) {
picture.setText(null);
} else {
picture.setText("Image not found");
}
}
/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path)
{
java.net.URL imgURL = ComboBoxDemo.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
//main方法,這個方法被首先執(zhí)行
public static void main(String s[])
{
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
//new了這個類的對象,也就是類的對象實例化,這樣才能調(diào)用其里面的方法
JFrame frame = new JFrame("ComboBoxDemo");
//調(diào)用了方法setDefaultCloseOperation,.這個方法在本類中沒有找到,那么應該是其父類的。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
JComponent newContentPane = new ComboBoxDemo();//其類中有構造,就會在new的時候北執(zhí)行。
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
}
}
其他的問題都是方法上的事情了,你首先要明白繼承和實現(xiàn)接口是怎么回事。
Java語言是面向對象的程序設計語言,Java程序的基本組成單元是類,類體中又可包括屬性與方法兩部分。而每一個應用程序都必須包含一個main()方法,含有main()方法的類稱之為主類。
一: Java程序的主類及其格式
作為一個可以獨立運行的Java程序,在它的眾多類中必須要有一個類作為程序的起始類,為了方便,本書把這個類稱為主類。當需要執(zhí)行一個程序時,人們在java命令后面輸入的便是這個主類的文件名(也是主類名),因此主類文件是Java運行環(huán)境建立起來之后第一個被裝入虛擬機的用戶文件。為了使虛擬機可以找到程序運行的起始入口,主類必須為public類,并含有一個在格式上符合約定的入口方法main(),其格式如下:
public static void main(String[] args){
…
}
其中各參數(shù)含義如下。
main:入口方法名稱。
args:命令行參數(shù),這是一個String對象數(shù)組。
static:修飾字,說明main()是一個靜態(tài)方法(類方法)。
public:修飾字,說明main()具有公有訪問屬性。
于是,主類框架的源代碼如下:
public class 主類名{
…
public static void main(String[] args){
…
}
}
Java程序的主類常常使熟悉C/C++的讀者感到迷惑:main()方法不就相當于C/C++程序中的主函數(shù)嗎,為什么非得把它放到一個類里,難道它有什么不同嗎?
沒錯,Java類中main()方法就相當于C/C++程序中的主函數(shù),是一個入口函數(shù)。之所以把它封裝到一個類里,而不像C/C++那樣單獨作為一個函數(shù)來處理,就本書作者的理解,大概Java的設計者們有如下幾個方面的考慮。
1)Java既然把所有事物都看成了對象,那么就沒有理由不把程序也看成對象,因為程序也是一種事物。既然是對象,那么它就應該屬于某個類并以程序名來命名。既然程序是一種類,那么main()就應該是這個類的一個方法,只不過它有些特殊,它是一個入口方法,并且對它有些特殊規(guī)定,例如其名稱必須為main(),必須是公有靜態(tài)方法,有命令行參數(shù)等。
2)如果把程序封裝成了類,那么包括本程序在內(nèi)的任何程序就都可以根據(jù)需要,隨時創(chuàng)建這個類的對象,并通過該對象使用這個類中的資源,這樣就便于資源共享,從而提高程序的靈活性。
3)Java程序是一種以類為基本單位的模塊化程序,程序被編譯后,每一個類會對應生成一個二進制字節(jié)碼類文件。如果把程序也封裝成類,那么它的文件就與其他類文件統(tǒng)一起來,而不會產(chǎn)生其他類型的文件,因而便于管理。
4)之所以把入口方法封裝到類中,其根本目的就是要盡可能平等地看待所有的類。因為Java的最終目的是要以類為基本模塊來實現(xiàn)可裝配軟件,如果把main()方法封裝到了一個類中,那么就意味著main()與類的其他方法沒什么本質(zhì)區(qū)別,只不過是分工不同而已。下面很快就會看到,Java的所有類都可以含有一個入口方法而成為主類。也就是說,在Java程序中根本就沒有主類、次類之分,這里之所以把帶有main()方法的類稱為主類,是為了表達方便。
二: JAVA源程序在命令行下的運行
class?Bank{
public?void?init(){
System.out.println("Yes,I?can");
}
public?static?void?main(String?args[]){
BankAccount?ba1?=?new?BankAccount(100.00);
System.out.print("Before?transactions,?");
ba1.display();
ba1.deposit(74.35);
ba1.withdraw(20.00);
System.out.print("After?transactions,?");
ba1.display();
Bank?b?=?new?Bank();
b.init();
}
}
class?BankAccount{
private?double?balance;
public?BankAccount(double?openingBalance){
balance?=?openingBalance;
}
public?void?deposit(double?amount){
balance?+=?amount;
}
public?void?withdraw(double?amount){
balance?-=?amount;
}
public?void?display(){
System.out.println("balance?=?"?+?balance);
}
}
三:完整的java源程序應該包括下列部分
package語句;
import語句;
public classDefinition; // 公共的類定義部分,至多只有一個公共類的定義
// java語言規(guī)定該java源程序的文件名必須與該公共類名完全一致
classDefinition; // 類定義部分,可以有0個或多個
interfaceDefinition; // 接口定義部分,可以有0個或多個
package:java編譯器為每個類生成一個字節(jié)碼文件,且文件名與類名相同,這就會帶來一個問題:同名的類會發(fā)生沖突。package便可管理類命名空間。
一般地,具有相同功能的類放在一個package中。
一個java源程序至多只能有一個公共類的定義。
若java源程序有一個公共類的定義,則該源文件名字必須與該公共類的名字完全相同。
若源程序中不包含公共類的定義,則該文件名可以任意取名。
若一個源程序中有多個類定義,則在編譯時將為每個類生成一個。class文件。
三。java編程規(guī)范
包名:全小寫的名詞,中間可由點分割,eg:java.awt.event
類名:首字母大寫,多個單詞合成,每個單詞首字母也要大寫,eg: class HelloWorldApp
接口名: 同類名,eg: interface Collection
方法名: 由多個單詞合成,第一個單詞通常為動詞,首字母小寫,中間的每個單詞的首字母都要大寫,eg: balanceAccount, isButtonPressed
變量名: 全小寫,一般為名詞,eg: length
常量名: 基本數(shù)據(jù)類型的常量名為全大寫,如果由多個單詞構成,可以用下劃線隔開,eg: int YEAR, int WEEK_OF_MONTH
對象類型的常量,則是小寫混合,由大寫字母把單詞隔開
例如:javabean是一個類,但是如果您的類想要成為beajavabean,您必須向類中的變量(比如XXX)添加兩個內(nèi)部函數(shù)getXxx()和setXxx(),并且您必須在類中有一個無參數(shù)的構造函數(shù)。這些就是javabean,組件之間必須有一個相互使用的規(guī)范。
Java實際上是所有的類。組件是一個抽象,是符合規(guī)范的類的集合。要知道它可以提供某些功能。以J2EE為例,servlet,jsp,javabean,ejb都是組件。
但在使用上,都會分階級,有自己的特殊規(guī)則。
擴展資料:
首先,輕量級組件是用Java代碼繪制的,因此具有平臺可移植性,重量級組件是由調(diào)用系統(tǒng)的函數(shù)(如主窗體)繪制的組件,一般來說,盡量使用輕量級組件,這有利于可移植性。
java中的大多數(shù)組件。swing包是輕量級的,而java包則是輕量級的,awt很重。
Swing是用100%純Java實現(xiàn)的,而Swing組件是用Java實現(xiàn)的輕量級組件,沒有本地代碼獨立于操作系統(tǒng)支持之外,這是擁有AWT組件的最大組。當AWT組件通過特定的平臺時
對等類(Peer)實現(xiàn),因此Swing比AWT組件更實用。Swing不能回答相同的問題平臺上的一致性能和提供本地窗口系統(tǒng)不支持的附加功能的能力。
重量級組件:特定平臺必須有相應的組件。
輕量級組件:在一個虛擬的畫布上繪制組件(swing非常慢),所有的輕量級組件應該“最終”屬于重量級組件(jframe、jdialog)。
因為它是這樣繪制的,所以可以在各種平臺上實現(xiàn)一致的性能。同樣,如果混合重量級組件和輕量級組件容易在重疊上引起沖突。
接口文檔,代碼層次(比如公共方法寫在哪個class里),哪些為一大類在一個包下,數(shù)據(jù)字典,就是介紹你這個項目的架構讓后來的人怎么能容易參與開發(fā),交接什么看這個就可以方便些,輔助作用的一個文檔一般都是項目經(jīng)理寫