Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java

Bài đầu tiên của bạn, bạn đã học cách để Java in cái gì đó ra màn hình, trong bài này,

bạn sẽ học cách nhập vào cái gì đó và Java in cái đó ra màn hình. Gõ cái này đi bạn

(lưu ý, bạn phải gõ, không được copy và paste)

import java.io.*;

public class Hello {

public static void main(String[] args) throws Exception {

BufferedReader in = new BufferedReader(new

InputStreamReader(System.in));

System.out.print("Your name is: ");

String str;

str = in.readLine();

System.out.println("Welcome " + str + " to Java");

}

}

Xin hỏi, tôi đã bắt đầu với một vài ví dụ, mà tôi chẳng hiểu cái gì cả.

Xin trả lời, bạn sẽ học Java qua các ví dụ, rất nhiều ví dụ, lí thuyết thì bạn chỉ học từ từ

thôi.

*Lí thuyết: cấu trúc một chương trình Java

public class Core {

public static void main(String[] args) {

System.out.println("Hello,Everybody in the World!");

}

}

public class Core bạn bắt đầu một lớp Java

public static void main(String[] args) đây là một phương thức main trong Java, để cho

chương trình chạy được. Tạm thời bạn phải gõ y như thế này

System.out.println("Hello,Everybody in the World!") đây là một câu lệnh trong Java,

đơn giản nó chỉ in ra chuỗi nằm trong 2 dấu “” ra màn hình.

Mọi lớp và phương thức trong Java mở ra bằng { và đóng lại bằng }

Mọi câu lệnh trong java kết thúc bằng ;

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 1

Trang 1

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 2

Trang 2

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 3

Trang 3

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 4

Trang 4

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 5

Trang 5

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 6

Trang 6

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 7

Trang 7

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 8

Trang 8

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 9

Trang 9

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 47 trang duykhanh 7460
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java

Giáo trình Lập trình Java - Chương 1: Bắt đầu với Java
hem vao day 
* CheckboxMenuItem 
Bạn cũng có thể tạo một mục chọn có khả năng đánh dấu bằng cách sử dụng lớp 
CheckboxMenuItem 
CheckboxMenuItem autosave=new CheckboxMenuItem("Auto Save"); 
file.add(autosave); 
Ngoài ra còn một phương thức khởi tạo khác là CheckboxMenuItem autosave=new 
CheckboxMenuItem("Auto Save",true); Mặc định là false (chưa chọn) 
Bài 17 - Khởi tạo và cài đặt phƣơng thức hành động hàng loạt 
Bạn hãy cứ tưởng tượng nếu bạn phải làm một ứng dụng giống như Microsoft Word 
(chỉ mới nói Word thôi chứ chưa dám đụng tới Photoshop, Corel gì cả) với một lô Menu 
và mỗi Menu có hơn chục cái MenuItem. Vậy thì bạn phải khởi tạo, phải add rất là mệt. 
Hãy để máy tự động làm cho bạn, chỉ với vài vòng lặp. Bạn cần dùng một bảng String 
để lưu những label của menu và một mảng Menu để lưu chính những menu. 
import javax.swing.JFrame; 
import java.awt.*; 
import java.awt.event.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 MenuBar menuBar=new MenuBar(); 
 f.setMenuBar(menuBar); 
 final String[] 
menuLabel={"File","Edit","View","Insert","Format","Table","Windows","Help"}; 
 final Menu[] menu=new Menu[menuLabel.length]; 
 for(int i=0;i<menuLabel.length;i++) 
 { 
 menu|i|=new Menu(menuLabel|i|); 
 menuBar.add(menu|i|); 
 } 
 final String[] fileMenuItemLabel={"New","Open","Save","Exit"}; 
 final MenuItem[] fileMenuItem=new 
MenuItem[fileMenuItemLabel.length]; 
 for(int i=0;i<fileMenuItemLabel.length;i++) 
 { 
 fileMenuItem|i|=new MenuItem(fileMenuItemLabel|i|); 
 menu[0].add(fileMenuItem|i|); 
 if(i==2) menu[0].addSeparator(); 
 } 
 fileMenuItem[3].addActionListener(new ActionListener() 
 { 
 public void actionPerformed(ActionEvent e) 
 { 
 System.exit(0); 
 } 
 }); 
 f.setSize(400,60); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
Bài 18 – ScrollPane 
import javax.swing.JFrame; 
import java.awt.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 ScrollPane s=new ScrollPane(); 
 TextArea t=new TextArea(); 
 s.add(t); 
 f.add(s); 
 f.setSize(200,120); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
Bài 19 - LookAndFeel (cảm quan giao diện) 
LookAndFeel (viết tắt là LaF gọi là cảm quan giao diện cho ứng dụng. Sử dụng rất đơn 
giản 
UIManager.setLookAndFeel(String className) với UIManager là một class còn 
className là tên class chứa cái LaF đó. Java hỗ trợ sẵn 3 cái là: 
javax.swing.plaf.metal.MetalLookAndFeel (giao diện Java) 
com.sun.java.swing.plaf.windows.WindowsLookAndFeel (giao diện Windows) 
com.sun.java.swing.plaf.motif.MotifLookAndFeel (giao diện UNIX) 
Sau khi set, để giao diện hiển thị trên JFrame nào, cần cập nhật trên JFrame đó bằng 
phương thức sau 
SwingUtilities.updateComponentTreeUI(myFrame) (myFrame là tên JFrame cần cập 
nhật) 
Ví dụ sau sẽ minh họa cách thay đổi LaF dựa vào CheckboxGroup. Cần nói thêm là 
phương thức UIManager.setLookAndFeel(String className) bắt buộc phải xử lí ngoại lệ 
import javax.swing.JFrame; 
import java.awt.*; 
import java.awt.event.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 final JFrame f = new JFrame("My JFrame"); 
 final String[] a={"Metal","Windows","Motif"}; 
 final Checkbox[] b=new Checkbox[a.length]; 
 final String[] c=new String[a.length]; 
 CheckboxGroup g=new CheckboxGroup(); 
 c[0]="javax.swing.plaf.metal.MetalLookAndFeel"; 
 c[1]="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; 
 c[2]="com.sun.java.swing.plaf.motif.MotifLookAndFeel"; 
 Panel p=new Panel(); 
 f.add(p); 
 for(int i=0;i<a.length;i++) 
 { 
 b|i|=new Checkbox(a|i|,g,false); 
 p.add(b|i|); 
 b|i|.addItemListener(new ItemListener() 
 { 
 public void itemStateChanged(ItemEvent e) 
 { 
 for(int j=0;j<a.length;j++) 
 { 
 if(e.getSource()==b[j]) 
 { 
 try 
 { 
 UIManager.setLookAndFeel(c[j]); 
 } 
 catch(Exception 
exception) 
 { 
 System.out.println("LaF not found"); 
 } 
 SwingUtilities.updateComponentTreeUI(f); 
 } 
 } 
 } 
 }); 
 } 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
Bài 20 - Cách sử dụng LaF của hãng thứ 3: 
Cách 1: coi nó như là 1 add-in plugin, tức là đưa cái file .jar chứa class mình cần vào 
thư mục jdk1.5.0\jre\lib\ext rồi cứ thế điều chỉnh className cho phù hợp 
Cách 2: giải nén file .jar ra và tống thẳng nó vào gói jdk1.5.0\jre\lib\rt.jar 
Ví dụ: bạn DOWN được gói xplookandfeel.jar và chép nó theo cách 1 
Bạn hãy mở file readme của gói này ra và tìm thấy className của nó là 
"com.stefankrause.xplookandfeel.XPLookAndFeel" thì đưa thêm nó vào 
* LaF có bản quyền (ở đây lấy ví dụ là Alloy-có cả mã) 
Để sử dụng LaF có bản quyền bạn setProperty cho nó, ví dụ là dùng AlloyLaF 
(className là "com.incors.plaf.alloy.AlloyLookAndFeel") 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 com.incors.plaf.alloy.AlloyLookAndFeel.setProperty("alloy.licenseCode"
,"v#ej_technologies#uwbjzx#e6pck8"); 
 final JFrame f = new JFrame("My f"); 
 final String[] a={"Metal","Windows","Motif","XP","Alloy"}; 
 final Checkbox[] b=new Checkbox[a.length]; 
 final String[] c=new String[a.length]; 
 CheckboxGroup g=new CheckboxGroup(); 
 c[0]="javax.swing.plaf.metal.MetalLookAndFeel"; 
 c[1]="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; 
 c[2]="com.sun.java.swing.plaf.motif.MotifLookAndFeel"; 
 c[3]="com.stefankrause.xplookandfeel.XPLookAndFeel"; 
 c[4]="com.incors.plaf.alloy.AlloyLookAndFeel"; 
 Panel p=new Panel(); 
 f.add(p); 
 for(int i=0;i<a.length;i++) 
 { 
 b|i|=new Checkbox(a|i|,g,false); 
 p.add(b|i|); 
 b|i|.addItemListener(new ItemListener() 
 { 
 public void itemStateChanged(ItemEvent e) 
 { 
 for(int j=0;j<a.length;j++) 
 { 
 if(e.getSource()==b[j]) 
 { 
 try 
 { 
 UIManager.setLookAndFeel(c[j]); 
 } 
 catch(Exception 
exception) 
 { 
 System.out.println("LaF not found"); 
 } 
 SwingUtilities.updateComponentTreeUI(f); 
 } 
 } 
 } 
 }); 
 } 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
Bài 21 – Jcheckbox 
* JCheckBox tương tự Checkbox 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame frame = new JFrame("My frame"); 
 JCheckbox checkbox=new JCheckbox("Documents",false); 
 checkbox.addItemListener(new ItemListener() 
 { 
 public void itemStateChanged(ItemEvent e) 
 { 
 System.out.println("Changed"); 
 } 
 }); 
 frame.add(checkbox); 
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 frame.setVisible(true); 
 } 
} 
Bài 22 - JRadioButton và ButtonGroup 
* JRadioButton và ButtonGroup tương tự Checkbox và CheckboxGroup 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 com.incors.plaf.alloy.AlloyLookAndFeel.setProperty("alloy.licenseCode"
,"v#ej_technologies#uwbjzx#e6pck8"); 
 final JFrame f = new JFrame("My f"); 
 final String[] a={"Metal","Windows","Motif","XP","Alloy"}; 
 final JRadioButton[] b=new JRadioButton[a.length]; 
 final String[] c=new String[a.length]; 
 c[0]="javax.swing.plaf.metal.MetalLookAndFeel"; 
 c[1]="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; 
 c[2]="com.sun.java.swing.plaf.motif.MotifLookAndFeel"; 
 c[3]="com.stefankrause.xplookandfeel.XPLookAndFeel"; 
 c[4]="com.incors.plaf.alloy.AlloyLookAndFeel"; 
 ButtonGroup g=new ButtonGroup(); 
 JPanel p=new JPanel(); 
 f.add(p); 
 for(int i=0;i<a.length;i++) 
 { 
 b|i|=new JRadioButton(a|i|); 
 g.add(b|i|); 
 p.add(b|i|); 
 b|i|.addItemListener(new ItemListener() 
 { 
 public void itemStateChanged(ItemEvent e) 
 { 
 for(int j=0;j<a.length;j++) 
 { 
 if(e.getSource()==b[j]) 
 { 
 try 
 { 
 UIManager.setLookAndFeel(c[j]); 
 } 
 catch(Exception 
exception) 
 { 
 System.out.println("LaF not found"); 
 } 
 SwingUtilities.updateComponentTreeUI(f); 
 } 
 } 
 } 
 }); 
 } 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
Bài 23 - JComboBox và Jlist 
* JComboBox tương tự như Choice 
import javax.swing.*; 
import java.awt.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 String[] label={"ASM","C\\C++","VB","Java"}; 
 JComboBox box=new JComboBox(label); 
 f.add(box); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setSize(100,55); 
 f.setVisible(true); 
 } 
} 
* JList tương tự List nhưng nó lại không tự kéo thả được như List, cần có sự hỗ trợ của 
JScrollPane 
import javax.swing.*; 
import java.awt.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 String[] label={"ASM","Pascal","C\\C++","VB","Java"}; 
 JList l=new JList(label); 
 ScrollPane s=new ScrollPane(); 
 s.add(l); 
 f.add(s); 
 f.setSize(100,100); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
* Còn lại thì JMenuBar,JMenu,JMenuItem tương tự MenuBar,Menu,MenuItem 
Bài 24 – JtabbedPane 
Đây gọi là đối tượng phân trang. Ví dụ dưới đây minh họa 1 trong các phương thức 
addTab là JTabbedPane.addTab(String title,Component component) Các component 
trong ví dụ đều là các JButton 
import javax.swing.*; 
import java.awt.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 String[] label={"ASM","Pascal","C\\C++","VB","Java"}; 
 JButton[] b=new JButton[label.length]; 
 JTabbedPane p=new JTabbedPane(); 
 for(int i=0;i<label.length;i++) 
 { 
 b|i|=new JButton(label|i|); 
 p.addTab(label|i|,b|i|); 
 } 
 f.add(p); 
 f.setSize(300,100); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
Thông thường thì các componenet đều là các khung chứa (ví dụ như JPanel) chứa 
nhiều đối tượng riêng biệt 
Bài 25 – JtoolBar 
JToolBar (thanh công cụ) giống y như bạn thường thấy trong các ứng dụng Windows. 
Nó bao gồm nhiều JButton, mỗi JButton có một Icon riêng. Trước hết hãy chuẩn bị vài 
hình .gif 24x24 cho ví dụ này. Nếu không tìm thấy thì chép từ 
jdk1.5.0\demo\plugin\jfc\Stylepad\resources. Chép vào thư mục chứa mã nguồn 
import javax.swing.*; 
import java.awt.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 JToolBar t=new JToolBar(); 
 String[] 
label={"New","Open","Save","Cut","Copy","Paste","Bold","Italic","Underline","
Left","Right","Center"}; 
 String[] 
file={"new.gif","open.gif","save.gif","cut.gif","copy.gif","paste.gif","bold.
gif","italic.gif","underline.gif","left.gif","right.gif","center.gif"}; 
 ImageIcon[] icon=new ImageIcon[label.length]; 
 JButton[] b=new JButton[label.length]; 
 for(int i=0;i<label.length;i++) 
 { 
 icon|i|=new ImageIcon(file|i|); 
 b|i|=new JButton(icon|i|); 
 b|i|.setToolTipText(label|i|); 
 t.add(b|i|); 
 if((i==2)||(i==5)||(i==8)) t.addSeparator(); 
 } 
 f.add(t); 
 f.setSize(600,70); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
Bài 26 – Jtable 
* JTable hiển thị dữ liệu có sẵn 
import javax.swing.*; 
import java.awt.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 String[][] dat={{"1","JCreator","Xinox","Beginer"}, 
 {"2","jGRASP","Auburn","Medium"}, 
 {"3","NetBeans","Sun 
Microsystems","Expert"}, 
 {"4","Gel","GExperts","Beginer"}, 
 {"5","Eclipse","Eclipse","Expert"}, 
 {"6","JBuilder","Borland","Expert"}}; 
 String[] columnName={"ID","Name","Company","Rank"}; 
 JTable t=new JTable(dat,columnName); 
 JScrollPane s=new JScrollPane(t); 
 f.add(s); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setSize(400,100); 
 f.setVisible(true); 
 } 
} 
* Thao tác trực tiếp dữ liệu trong từng ô của bảng 
Trong ví dụ dưới chúng ta sẽ thay đổi dữ liệu của cột "Rank" bằng một JComboBox, sử 
dụng class TableColumn 
import javax.swing.*; 
import java.awt.*; 
import javax.swing.table.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 String[][] dat={{"1","JCreator","Xinox","Beginer"}, 
 {"2","jGRASP","Auburn","Medium"}, 
 {"3","NetBeans","Sun 
Microsystems","Expert"}, 
 {"4","Gel","GExperts","Beginer"}, 
 {"5","Eclipse","Eclipse","Expert"}, 
 {"6","JBuilder","Borland","Expert"}}; 
 String[] columnName={"ID","Name","Company","Rank"}; 
 JTable t=new JTable(dat,columnName); 
 JScrollPane s=new JScrollPane(t); 
 f.add(s); 
 JComboBox c=new JComboBox(new 
String[]{"Low","High","Extremely"}); 
 TableColumn rankColumn=t.getColumn("Rank"); 
 rankColumn.setCellEditor(new DefaultCellEditor(c)); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setSize(400,100); 
 f.setVisible(true); 
 } 
} 
Bài 27 - JOptionPane cơ bản 
Đây có thể nói là công cụ Dialog mạnh nhất 
Trước tiên hãy xem qua ví dụ sau 
import javax.swing.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 JOptionPane.showMessageDialog(f,"Hien thi cau thong bao","Hien 
thi tieu de",JOptionPane.ERROR_MESSAGE); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
JOptionPane bao gồm các thành phần chính sau đây: Title, Icon, Message, InputValue 
và OptionButtons. Không cần bao gồm đủ tất cả 
* Khởi tạo của JOptionPane 
JOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] 
options) 
Bạn có thể thíêu bất cứ thành phần nào thậm chí có thể thiếu hết 
Object message: câu thông báo hiển thị trên JOptionpane 
int messageType: bao gồm ERROR_MESSAGE, INFORMATION_MESSAGE, 
WARNING_MESSAGE, QUESTION_MESSAGE, và PLAIN_MESSAGE 
int optionType: bao gồm DEFAULT_OPTION, YES_NO_OPTION, 
YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION 
Icon icon: hình icon của JOptionPane 
Ví dụ: 
import javax.swing.*; 
class Core 
{ 
 public static void main(String args[]) 
 { 
 JFrame f = new JFrame("My frame"); 
 f.add(new JOptionPane("Hien thi cau thong bao", 
JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_CANCEL_OPTION)); 
 f.setSize(250,150); 
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 f.setVisible(true); 
 } 
} 
* Các phương thức (hay sử dụng hơn) 
void showMessageDialog(Component parentComponent, Object message, String title, 
int messageType) 
String showInputDialog(Component parentComponent, Object message, String title, int 
messageType) 
int showConfirmDialog(Component parentComponent, Object message, String title, int 
optionType, int messageType) Yes trả về 0 và No trả về 1 

File đính kèm:

  • pdfgiao_trinh_lap_trinh_java_chuong_1_bat_dau_voi_java.pdf