Lập trình java căn bản
LẬP TRÌNH JAVA CĂN BẢN
Spring 2013
Slides:
- Graphics User Interface: 2spp – 4spp
- IO: download: 2spp – 4spp
- Regular Expression
- Annotations
- Reflections
- XML Processing
Old courses
1. Study guide
2.examples; Slides: 1, 2, 3,3_2, 4, 5, 6, 7, 8
3. Text Book
5. Software : JDK&Javadocs, JCreator, Eclipse, NetBeans
6. Assignment
7. Exercises: part 01, part 02
8. Các link tham khảo:
CÁC BÀI VIẾT LIÊN QUAN
2. Các bước căn bản tạo đối tượng trong java
3. Các bước làm việc với tập hợp các đối tượng
4. Các ví dụ thiết kế giao diện GUI
6. Pig Game
7. Liệt kê tất cả các tập tin có trong 1 file JAR hoặc ZIP
8. Đóng gói 1 ứng dụng java thành executable-jar file
9. Đóng gói 1 ứng dụng java thành file EXE
11. Chương trình Notepad đơn giản với java I/O
12. Sử dụng text file để lưu trữ dữ liệu dạng CSDL
14. Thực thi 1 file với chương trình mặc định
15. Code liên quan đến xử lý Date
16. Từng bước làm việc với Eclipse
US said
thưa thầy!em muốn trao đổi với thầy về cái môn java này thì em trao đổi thẳng trên blog này luôn hả? thầy . hay em phải gửi mail dạ thầy.
mà em xin hỏi thầy : em muốn theo java, mà em lại học cao đẳng, trong khoảng thời gian 2 năm (tại vì năm đầu bỏ , hoc mấy cái môn tự nhiên).Cái khoảng thời gian 2 năm đó có đủ để theo chuyên về java đuợc ko thầy.
hTung said
Chào thầy, thầy cho hỏi có cuốn sách nào về lập trình Swing tiếng Việt không cho em 1 cuốn
hTung said
Em nghe nói PHP nhanh hơn JSP 4 lần, số người dùng JSP cũng khá ít, vậy bọn em có cần học JSP không thầy
Quoc Quan said
Thầy ơi! Trong quá trình thầy dạy trên lớp thầy có làm những ví dụ minh họa vậy thầy có thể post lên để em lấy về xem được không thầy. Em cảm ơn thầy nhiều.
HoangDoMinhDuc said
Thầy ơi!Em cài JCREATE PRO xong thì nó không chạy và báo lỗi như vậy là sao thầy
“Your system clock appears to have been set back, possibly in an attempt to defeat the security system on this program. Please correct your system clock before trying to run this program again. If your clock is correct, please contact the author of this program for instructions on correcting this error (report code CCB-F).”
Võ Văn Hải said
Em reset thời gian hệ thống về năm 1995 là được!
HoangDoMinhDuc said
Cám ơn thấy.Cho em hỏi 1 câu hỏi ngoài lề ah.Máy tính của em có down 1 tài liệu pdf về nhưng em quên cài foxit reader nên nó báo lỗi,em đã cài lại,nhưng không hiểu sao ổ đỉa chứa cái soft foxit này hiên lỗi font chữ không đọc được,hầu như các file trong ỗ đĩa này đều bị như vậy.Nó không những không đọc được mà cón không xóa được(“Make Use The Disk is Not FUll or Write-Potected and that the file is not currently in use”)Và đặc biệt ổ này em chia có 10GB,nhưng kiểm tra dung lượng các file này lên đến 29 GB.Cám Ơn Thấy.
Tý tèo said
Dùng Acrobat Reader đọc đi. Free mà!
Tô Bá Cường said
Thưa thầy, Em và các bạn đang làm một số câu trắc nghiệm trên đĩa, gõ lệnh và chạy có mấy câu chạy đc nhưng nhiều câu chạy bị lỗ thầy ạ, mặc dù em và các bạn đã sữa giống như đề bài mà cũng ko đc, vậy giờ phải làm sao đây ạ
Mong thầy sớm nhắn lại cho em biết. Cảm ơn thầy rất nhiều
vovanhai said
Các câu trắc nghiệm trên đĩa bị lỗi? Cái này có thể vì nhiều quá, có vài câu bị nhầm lẫn cũng là chuyện thường. Những câu nào lỗi em có thể gửi trực tiếp lên đây bàn luận nhé!
NCTH1A said
Thay oi cho em hoi lop em NCTH1A (nhom 4)
Thay cho em biet lich thi lai cuoi ky di thay, thay noi cham nhat la thu 7 (27/12) se co thong bao tren blog ma em ko tim thay T.T
minh said
thầy ơi, thầy có bài tập java tổng hợp từ đầu tới cuối không ạ. Thầy cho em để em tham khảo
Phương Thảo said
em chàp thầy. Em mới học java. Và đang học cách tạo một game. Em có chút rắc rối mong thầy giải đáp cho em. Game của em sẽ tạo các hình ảnh đi từ bên này sang bên kia JPanel. Em ghép ảnh vào một JLabel và cho vào JPnael để chạy bằng Thread. EM có chút rắc rối là khi 2 JLabel chay song song cung nhau, nó sẽ bị giật hình. Em phải làm gì để sửa nó ạ. Em cám ơn thầy
phamvanvu205 said
Cac ban cu yen tam tham khao xem xet roi go tung code cua Thay Hai kien thuc tich luy dan thoi. Chu tai lieu nhieu ma lam ko het thi cung phi.Ai co nhu cau muon tai lieu thi Add cho minh Yh:pham_vu205 minh tich luy nhieu code bao J2ee,jsp…
Chuc vui.
nicfull said
thầy ơi sao em down phần Text Book và Sách tham khảo về lại ko xem được vậy thầy ??????
phamvanchinh said
thay oi cho em hoi!
ve viec lam de tai cho lop NCTH2B sao ha thay?
em lam song rui` jo mun nop cho thay thj` lam sao a.?
Danh Sach Lien Ket va ArrayList said
Chao Thay!
Em đang viết một chương trình Java QLNV như sau :
NV gồm 3 thuộc tính cơ bản :Họ Tên ,Giới Tính,Lương
NV gồm có hai loại :NVVP va NVSX
NVVP :có thêm thuộc tính SONgayLam va TienMotNgay.
NVSX co thuộc tính SoSP và GiaDVSP;
2 Loai NV này có cùng phương thức La Tính Luong ,Nhap Thong Tin ,Xúât Thông Tin
a.Dùng DSLK đơn để quản lí DSNV trên (them ,xoa,sua,tim kiem )
b.Dùng ArrayList để quản lí DSNV trên
import java.util.Scanner;
public abstract class NhanVien
{
protected String HoTen;
protected String GioiTinh;
protected double TienLuong;
public NhanVien(String pHoTen)
{
HoTen=pHoTen;
}
public NhanVien()
{
HoTen ="";
GioiTinh="";
TienLuong=0;
}
public NhanVien(NhanVien p)
{
HoTen=p.HoTen;
GioiTinh=p.GioiTinh;
TienLuong=p.TienLuong;
}
public NhanVien(String pHoTen,String pGioiTinh)
{
HoTen=pHoTen;
GioiTinh=pGioiTinh;
TienLuong =0;
}
public void NhapThongTin()
{
Scanner scan = new Scanner(System.in);
System.out.print("\nNhap Ho Ten Nhan Vien : ");
HoTen=scan.next();
System.out.print("\nNhap Gioi Tinh Cua Nhan Vien : ");
GioiTinh =scan.next();
}
public void XuatThongTin()
{
System.out.print("Ho ten :" +HoTen);
System.out.print("\nGioi Tinh :"+GioiTinh);
System.out.print("\nTien Luong :" +TienLuong);
}
public abstract void TinhLuong();
}
import java.util.Scanner;
public class NhanVienSX extends NhanVien
{
private double LuongCanBan;
private int SoSanPham;
private final int DonGia =5000;
NhanVienSX()
{
}
NhanVienSX(String pHoTen)
{
HoTen=pHoTen;
}
public void NhapThongTin()
{
super.NhapThongTin();
Scanner scan = new Scanner(System.in);
System.out.print("\nNhap Luong Co Ban :");
LuongCanBan =scan.nextLong();
System.out.print("\nSo Don Vi SP:");
SoSanPham=scan.nextInt();
}
public void XuatThongTin()
{
super.XuatThongTin();
System.out.print("\nSo San Pham: "+SoSanPham);
System.out.print("Luong Can Ban :"+LuongCanBan);
//System.out.print("Luong Thang :"+TienLuong);
}
public void TinhLuong()
{
TienLuong =LuongCanBan +SoSanPham*DonGia;
}
}
Nho Thay huong dan dum em cach xay dung cac Node trong dslk de quan li Nhan Vien nay.
duoichon said
Thây làm ơn cho em hỏi trong tool Stylus làm sao để đo time truy vấn bằng Xpath, em tìm hiểu mà chỉ đo được khi thực thi Xquery còn Xpath thi em không biết, thầy làm ơn chỉ giúp em
Quan said
Thầy ơi, mấy tài liệu của thầy em download về nó có đuôi lá chm_ hoặc là pdf_. Làm sao để đọc dc thầy. Nếu bỏ dấu “_” ở sau đi thì mở dc nhưng mà ko xem dc nội dung bên trong. Mong thầy giúp đỡ.
vovanhai said
em phải đảm bảo là không nhấn chuột phải lên link chọn save-as mà cứ click bình thường để nó load skydriver mới download được
zzdarkzz said
Thầy ơi em thấy thích java vì nó làm đc game giống pig game của thầy làm demi thầy có thể hướng dẫn em cách làm 1 chương trình java đơn giản là có 1 quả bóng lăn qua lăn về trong 1 cái hình vuông nguyên tắt là nó chạm cái họpp thì nó bị dội ra và thay đổi màu đc ko ạ . Cám ơn thầy nhé . có chi thầy liên lạc mail hay yahoo cho em với zzdarkzz
vovanhai said
Down về xem nhé: BounceThread.java
zzdarkzz said
Em cám ơn Thầy em muốn hỏi thêm là em muốn làm 1 notepad giống cái demo thầy từng làm. Thầy có thể giúp em đc ko ạ, em cám ơn thây
vietlanh19 said
Thầy ơi cho em hỏi em làm nhiều java class rồi mà sao class này nó cũng báo lỗi này vậy hả thầy em ko hiều cho lắm
biuld output
——————–Configuration: ——————–
javac: file not found: C:\BounceThread.java
Usage: javac
use -help for a list of possible options
Process completed.
generaloutput
Caused by: java.lang.ClassNotFoundException: BounceThread
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: BounceThread. Program will exit.
Exception in thread “main”
Process completed.
vovanhai said
Em chạy command-line à? Em chắc chắn thư mục hiện hành là C:\ chứ?
Trong biến môi trường Path nên thêm .;
compile: javac -d . *.java
Chúc thành công!
vovanhai said
OK. EM làm thôi!
vietlanh19 said
Thầy có thể sent cho em mã nguồn mở của Notepad của thầy không?
em làm theo bài hướng dẫn của thầy nhưng có 1 số lỗi em muốn xem cái thầy xem mình thiếu gì , em mới tìm hiểu về java thôi cám ơn thầy nha
Anh Tuấn said
Thân chào thầy Võ Văn Hải ạ!
Em là 1 người không am hiểu lắm về Java, nhưng sau khi tham khảo Blog của thầy trong mấy ngày qua, em cảm thấy mình có được tự tin hơn khi nhắc đến Java. Em xin chân thành cảm ơn thầy về những gì thầy đã làm cho mọi người.
Hy vọng thầy luôn giữ được sức khỏe và phong độ để tiếp tục những gì thầy đã làm.
Em xin chân thành cảm ơn thầy!
dark1989 said
thầy Hải ơi em có mấy đoạn code không hiểu cho lắm thầy có thể giải thích cho em được không cám ơn thầy lắm
class Ball
{
public void move(Rectangle2D bounds)
{
x += dx;
y += dy;
if (x = bounds.getMaxX())
{
x = bounds.getMaxX() – XSIZE;
dx = -dx;
}
if (y = bounds.getMaxY())
{
y = bounds.getMaxY() – YSIZE;
dy = -dy;
}
}
public Ellipse2D getShape()
{
return new Ellipse2D.Double(x, y, XSIZE, YSIZE);
}
đoạn Rectangle2D bounds là gì vậy thầy hình như là 1 thư viện phải ko thầy
nói chung là toàn bộ class này em đều ko hiểu mong thầy giúp với em học online mà
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
for (Ball b : balls)
{
g2.fill(b.getShape());
}
vovanhai said
Regtangle2D là 1 class trong java cho phép vẽ 1 số các đối tựong 2D.
super.paintComponent(g); cho phép gọi hàm paintComponent(g) của ớp cha mà nó kế thừa. Cụ thể ở đây là JFram(hoặc Frame/…)
quang trung said
thay oi em lam hoai bai nay bi lổi
thầy giup e voi thay , e tim lổi hoai ma ko dc
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class closemenu extends JFrame implements ActionListener
{
public closemenu()
{
JMenu mn=new JMenu();
JMenuBar mnb=new JMenuBar(“file”);
mnb.add(mn);
JMenuItem exitMenuItem=new JMenuItem();
exitMenuItem.addActionListener(this);
mn.add(exitMenuItem);
setJMenuBar(mnb);
setSize(300,300);
setVisible(true);
setLocation(250,150);
}
public static void main (String[] args)
{
new closemenu();
}
}
đây là lổi cua chuong trinh đã chạy
——————–Configuration: ——————–
D:\hack\closemenu.java:15: closemenu is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener
public class closemenu extends JFrame implements ActionListener
^
D:\hack\closemenu.java:21: cannot find symbol
symbol : constructor JMenuBar(java.lang.String)
location: class javax.swing.JMenuBar
JMenuBar mnb=new JMenuBar(“file”);
^
2 errors
Process completed.
vovanhai said
Em implements ActionListener mà quên không override phương thức trừu tượng
public void actionPerformed(ActionEvent ae){
//….
}
quangtrung said
thay oi cho e hoi vai dieu ve java :
thay da tu di lam java o cong ty ,thầy thấy sao ,co nhieu ng lam viec ve java ko thay ,
e cung thich hay mon web va java ,nhu e mun tim hieu ve java nhieu hon ,
sao e len mang it ng nao trong vn de cap ve viec lam java và di sâu ve java, java đối voi con ng vn là khó không thầy ;
thầy chia se kinh nghiem khi di làm ve java cho e di thầy ,
vovanhai said
Có rất nhiều công ty cần lập trình viên về java nhưng nhu cầu của họ ít khi thỏa mãn do lực lượng theo java ít vả lại có theo nhưng không sâu. Học môn này ngoài mong muốn sẽ tìm được việc còn đòi hỏi sự đam mê. Chúc em thành công!
pham duc phung said
thầy ơi! em có đoạn code này dùng để hiển thị tiếng việt trong java,nhưng ko được!Mong thầy chỉ dùm em ạ!
import javax.swing.*;
import java.awt.*;
public class NewClass extends JFrame{
private JButton cmdTest = new JButton();
public NewClass(){
setSize(300,200);
setLocation(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
cmdTest.setFont(new Font(“Arial”,Font.PLAIN,15));
cmdTest.setText(“Điểm số”);
setLayout(new FlowLayout());
this.getContentPane().add(cmdTest);
}
public static void main(String[] inp){
new NewClass().setVisible(true);
}
}
Nhung said
Thầy có thể cho em xin tài liệu hướng dẫn tạo giao diên GUI được không a? em mới học java nhưng không được dạy phần này mà phải tự tìm hiểu. cám ơn thầy!
Võ Văn Hải said
nếu em dùng cmd để compile thì thêm tham số –encoding UTF-8. Còn nếu dùng với 1 IDE nào đó thì cứ việc lưu với UTF-8 là OK.
thanh quang said
thầy vui lòng upload các slide bài giảng từ tuần 5 trở về sau ạ!em cám ơn thầy nhiều!
minhhai said
thay oi.thay co the gui bai huong dan giup em lam notepad bang java duoc khong a.bai cua thay em chay nhieu loi qua.mong thay giup do.
minhhai said
thay gui qua mail minhhai1186@gmail.com. cam on thay nhieu
Võ Văn Hải said
Source code của chương trình download ở đây.
thich lap trinh said
em chào thầy.E gap phai van de nhu sau: e add dong 10 jbutton va gio em khong biet xu ly dong su kien cho JButton do nhu the nao.Mong thay giup do
Võ Văn Hải said
Thì addActionListener cho nó chứ sao em! ví dụ: btOK.addActionListener(ActionListener_implements_class);
nguyễn tiến đông said
Em chào thầy. Em đang tìm hiểu về web service trong java. thầy định hướng và cho em xin tài liệu. mong thầy giúp đỡ. Em cảm ơn!
Võ Văn Hải said
Em google nó là đọc chết bỏ.
anh quan said
chào mọi người mình đang làm game xếp hình(ghép tranh) chỉ có code tham khảo bằng java thôi :
ai có code game này với J2ME không .share cho mình với
cám ơn !
Trương Tuấn said
Em Chào Thầy!
ý tưởng game (J2ME) chặn bóng: cho một quả bóng chuyển động trong một vùng giới hạn bởi ba mặt phẳng, phần thứ tư ta cho mặt phẳng nhỏ để chặn bóng.
+ Thầy cho em Hỏi?
– cách đưa bóng, và 4 mặt phẳng vào ?
– vậy sự kiện nào để bóng chạy đc?
– khi mà bóng cham mặt phẳng, thì làm sao để bóng dội ra?
– và mặt phẳng chặn bóng làm sao để mình di chuyển đc?
Em cám ơn Thầy!
Võ Văn Hải said
Em tham khảo thử nhé:
Trương Tuấn said
Em cám ơn Thầy rất nhiều….
Hoang said
Tương tự như bài của bạn thầy có cách nào mình dùng chuột và đẩy quả bóng đi tùy theo ý mình, cách bắt sự kiên chuột và theo thời gian quả banh sẽ chạy chậm dần và dừng lại hẳn ko ạ?
NHAT said
TOI CHAY NETBEAN 5.0 THAY LOI JAVA.LANG.NoClassDeffoundError
BAC GIUP EM VOI
package org.apache.poi.ss.examples;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.FileOutputStream;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
/**
* A monthly calendar created using Apache POI. Each month is on a separate sheet.
*
*
* @author Yegor Kozlov
*/
public class CalendarDemo {
private static final String[] days = {
“Sunday”, “Monday”, “Tuesday”,
“Wednesday”, “Thursday”, “Friday”, “Saturday”};
private static final String[] months = {
“January”, “February”, “March”,”April”, “May”, “June”,”July”, “August”,
“September”,”October”, “November”, “December”};
public static void main(String[] args) throws Exception {
Calendar calendar = Calendar.getInstance();
boolean xlsx = true;
for (int i = 0; i < args.length; i++) {
if(args[i].charAt(0) == '-'){
xlsx = args[i].equals("-xlsx");
} else {
calendar.set(Calendar.YEAR, Integer.parseInt(args[i]));
}
}
int year = calendar.get(Calendar.YEAR);
Workbook wb = xlsx ? new XSSFWorkbook() : new HSSFWorkbook();
Map styles = createStyles(wb);
for (int month = 0; month < 12; month++) {
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, 1);
//create a sheet for each month
Sheet sheet = wb.createSheet(months[month]);
//turn off gridlines
sheet.setDisplayGridlines(false);
sheet.setPrintGridlines(false);
sheet.setFitToPage(true);
sheet.setHorizontallyCenter(true);
PrintSetup printSetup = sheet.getPrintSetup();
printSetup.setLandscape(true);
//the following three statements are required only for HSSF
sheet.setAutobreaks(true);
printSetup.setFitHeight((short)1);
printSetup.setFitWidth((short)1);
//the header row: centered text in 48pt font
Row headerRow = sheet.createRow(0);
headerRow.setHeightInPoints(80);
Cell titleCell = headerRow.createCell(0);
titleCell.setCellValue(months[month] + " " + year);
titleCell.setCellStyle(styles.get("title"));
sheet.addMergedRegion(CellRangeAddress.valueOf("$A$1:$N$1"));
//header with month titles
Row monthRow = sheet.createRow(1);
for (int i = 0; i < days.length; i++) {
//set column widths, the width is measured in units of 1/256th of a character width
sheet.setColumnWidth(i*2, 5*256); //the column is 5 characters wide
sheet.setColumnWidth(i*2 + 1, 13*256); //the column is 13 characters wide
sheet.addMergedRegion(new CellRangeAddress(1, 1, i*2, i*2+1));
Cell monthCell = monthRow.createCell(i*2);
monthCell.setCellValue(days[i]);
monthCell.setCellStyle(styles.get("month"));
}
int cnt = 1, day=1;
int rownum = 2;
for (int j = 0; j < 6; j++) {
Row row = sheet.createRow(rownum++);
row.setHeightInPoints(100);
for (int i = 0; i = day_of_week && calendar.get(Calendar.MONTH) == month) {
dayCell_1.setCellValue(day);
calendar.set(Calendar.DAY_OF_MONTH, ++day);
if(i == 0 || i == days.length-1) {
dayCell_1.setCellStyle(styles.get(“weekend_left”));
dayCell_2.setCellStyle(styles.get(“weekend_right”));
} else {
dayCell_1.setCellStyle(styles.get(“workday_left”));
dayCell_2.setCellStyle(styles.get(“workday_right”));
}
} else {
dayCell_1.setCellStyle(styles.get(“grey_left”));
dayCell_2.setCellStyle(styles.get(“grey_right”));
}
cnt++;
}
if(calendar.get(Calendar.MONTH) > month) break;
}
}
// Write the output to a file
String file = “calendar.xls”;
if(wb instanceof XSSFWorkbook) file += “x”;
FileOutputStream out = new FileOutputStream(file);
wb.write(out);
out.close();
}
/**
* cell styles used for formatting calendar sheets
*/
private static Map createStyles(Workbook wb){
Map styles = new HashMap();
short borderColor = IndexedColors.GREY_50_PERCENT.getIndex();
CellStyle style;
Font titleFont = wb.createFont();
titleFont.setFontHeightInPoints((short)48);
titleFont.setColor(IndexedColors.DARK_BLUE.getIndex());
style = wb.createCellStyle();
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
style.setFont(titleFont);
styles.put(“title”, style);
Font monthFont = wb.createFont();
monthFont.setFontHeightInPoints((short)12);
monthFont.setColor(IndexedColors.WHITE.getIndex());
monthFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
style = wb.createCellStyle();
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
style.setFillForegroundColor(IndexedColors.DARK_BLUE.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setFont(monthFont);
styles.put(“month”, style);
Font dayFont = wb.createFont();
dayFont.setFontHeightInPoints((short)14);
dayFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
style = wb.createCellStyle();
style.setAlignment(CellStyle.ALIGN_LEFT);
style.setVerticalAlignment(CellStyle.VERTICAL_TOP);
style.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setLeftBorderColor(borderColor);
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBottomBorderColor(borderColor);
style.setFont(dayFont);
styles.put(“weekend_left”, style);
style = wb.createCellStyle();
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_TOP);
style.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setRightBorderColor(borderColor);
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBottomBorderColor(borderColor);
styles.put(“weekend_right”, style);
style = wb.createCellStyle();
style.setAlignment(CellStyle.ALIGN_LEFT);
style.setVerticalAlignment(CellStyle.VERTICAL_TOP);
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setFillForegroundColor(IndexedColors.WHITE.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setLeftBorderColor(borderColor);
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBottomBorderColor(borderColor);
style.setFont(dayFont);
styles.put(“workday_left”, style);
style = wb.createCellStyle();
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_TOP);
style.setFillForegroundColor(IndexedColors.WHITE.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setRightBorderColor(borderColor);
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBottomBorderColor(borderColor);
styles.put(“workday_right”, style);
style = wb.createCellStyle();
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBottomBorderColor(borderColor);
styles.put(“grey_left”, style);
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setRightBorderColor(borderColor);
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBottomBorderColor(borderColor);
styles.put(“grey_right”, style);
return styles;
}
}
vananh said
có ai biết lỗi Could not find or load main class ko giúp em với 😦
cuonghuy said
thưa thầy!
cho em hỏi về danh dách kiểu List.
ví dụ em có 1 List gồm các đồi tượng là Hàng Hóa
em dùng vòng lap for(Hanghoa item : hh.getHanghoaList) để duyệt các đồi tượng.theo kiểu này thì sẽ duyệt lần lượt từ phần tử 0
em muốn duyệt từ phần tử thứ 3 trở đi thì làm thế nào ạ?
Võ Văn Hải said
nếu muốn vậy sao không duyệt: for(int i=3;i<hh.getHanghoaList().size();i++)?
xuan tung said
em chào thầy.Thầy cho em xin link phần mềm JDK vs Eclipse.em lên mạng dow nhưng không được
Võ Văn Hải said
SUN JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html
Eclipse:http://www.eclipse.org/downloads/
Minh Luân said
thầy ơi em đã cài đặt eclipse theo hướng dẫn, nhưng sao khi chạy file java lại không chạy được, thầy giúp em với
thanh said
Thưa thầy
Thầy có thể chỉ cho em 1 số thủ thuật code tắt trong java để viết nhanh hơn
Ví dụ: PSVM+tab = public void main string
em tìm mãi trên google mà không ra
Mong thầy chỉ giáo,hoặc cho em link tham khảo
minh said
em chào thầy! thầy cho em hỏi, em đang học về html viết trên notepad, khi em sử dung load ảnh, cấu trúc đúng(đã chạy thử trên máy khác được) nhưng máy em không được, em không hiểu lỗi do đâu a!mong thầy giải thích hộ, em xin chân thành cám ơn a!
vienthonginception said
Thưa thầy, em viết 1 chương trình để thực hành layout dạng GridBag như sau:
package demo;
import javax.swing.*;
import java.awt.*;
/**
*
* @author Administrator
*/
class Main extends JFrame {
JLabel l2=new JLabel(“Type”);
JLabel l3=new JLabel(“Class name”);
JLabel l4=new JLabel(“Res.name”);
JLabel l5=new JLabel(“Bean name”);
JButton b1=new JButton(“>>”);
JButton b2=new JButton(“>>”);
JButton b3=new JButton(“>>”);
JButton b4=new JButton(“Cancel”);
JButton b5=new JButton(“Next”);
JTextField t1=new JTextField(30);
JTextField t2=new JTextField(30);
JTextField t3=new JTextField(30);
JComboBox c1=new JComboBox();
GridBagLayout gb;
GridBagConstraints gbc;
public Main(String title){
super(title);
gb=new GridBagLayout();
setLayout(gb);
gbc=new GridBagConstraints();
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(l2,0,0,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(c1,0,1,1,3);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(l3,1,0,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(t1,1,1,1,2);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(b1,1,3,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(l4,2,0,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(t2,2,1,1,2);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(b2,2,3,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(l5,3,0,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(t3,3,1,1,2);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(b3,3,3,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(b4,6,1,1,1);
gbc.fill=GridBagConstraints.HORIZONTAL;
addComponent(b5,6,2,1,1);
}
public void addComponent(Component c, int row, int col, int nrow, int ncol){
gbc.gridx=col;
gbc.gridy=row;
gbc.gridwidth=ncol;
gbc.gridheight=nrow;
gb.setConstraints(c,gbc);
add(c);
}
@SuppressWarnings(“deprecation”)
public static void main(String args[])
{
Main t=new Main(“Step 1”);
t.setSize(600,300);
t.show();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Thế nhưng các button b4 và b5 em đã set là hiển thị trên 1 dòng và 1 cột nhưng chúng không chỉ chiếm 1 cột mà chiếm chiều dài giống t1,t2,t3… Mong thầy giúp đỡ!
Thách mắc một số điều trong việc sử dụng class said
Thầy ơi ,
Em tên là : Lý Phương Thiên_CDTH12A
Trong quá trình dịch tài liệu bằng tiếng anh , và làm những ví dụ trong sách. Thì em cũng hiểu 1 số cái , nhưng em còn mơ hồn trong việc sử dụng các lớp . Vi dụ : phuong phap public stactic void aaa() va public void giống hay khác nhau ,
Hoặc trong việc sử dụng interface , thì em đã hiểu nhưng mà em lại không biết áp dụng vào những bài tập.
Thầy có tài liệu java tiếng việt nào không , tài liệu mà hướng dẫn cách sử dụng class , va intefaca không vậy thầy.
Em xin cảm ơn thầy trước
Đặng Trung Nguyên said
Em chào thầy. Em có một số vấn đề về giao diện như sau:
trong một JFrame em có 2 button: btn1,btn2. Em muốn khi ngừời dùng nhấn phiếm Enter là thực thi hàm của btn1 và phiếm 2 là thực thi hàm của btn2 thì làm thế nào thưa thầy. Em đã thử dùng hàm btn1.setMnemonic(KeyEvent.VK_Enter); và btn2.setMnemonic(KeyEvent.VK_1); như một số trang đã hướng dẫn nhưng sao lại không đc thưa thầy.
vấn đề thứ 2: Về vấn đề định dạng code html trong đây là sao thưa thầy. và nếu dùng đc thế này thì thầy có tài liệu gì nó mong thầy gởi cho em, em xin cảm ơn.
String htmlButton = “HTML Button” + “Multi-line”;
JButton button4 = new JButton(htmlButton);
mong chờ trả lời từ thầy. Học trò của thầy.
Lê Đăng Tỉnh said
Thầy ơi cho em hỏi thêm một tí nữa Union pattern nó là cái gì? Mẫu đó áp dụng trong trường hợp nào? Mô hình của nó ra sao? một ứng dụng nhỏ có sữ dụng union pattern. Nếu được thì thầy cho em hỏi thêm so sánh với các pattern khác cùng loại hoặc so sánh ứng dụng khi có và không áp dụng Union pattern thì như thế nào? em cảm ơn thầy nhiều ạ
Vo Minh Tri said
Dạ thầy ơi em là sinh viên Khoa học tự nhiên, em đang làm đồ án Mail Client bằng java.Đọc hai bài viết gửi và nhận mail của thầy em đã thựcc hiện đựơc nhưng hộp thư em trên gmail có tổng cộng 200 thư nếu mình muốn chỉ lấy những thư chưa đọc (chứ đợi load hết 200 thư thì lâu quá). Mong thầy cho lời khuyên giúp em
Em cảm ơn thầy nhiều ạ!
hoa said
thay giup em voi,bai tap nay em 0 biet lam,thay co the chi em o,code em viet chi duoc nhung phan don gian
Viết chương trình quản lý nhân viên cho công ty X, biết rằng:
1. Thông tin của một nhân viên gồm có:
a. Số Chứng Minh Nhân Dân (theo chuẩn của Việt Nam)
b. Họ tên
c. Ngày tháng năm sinh
d. Địa chỉ
e. Giới tính (Nam/Nữ)
f. Email (theo chuẩn chung quốc tế)
g. Số điện thoại (theo chuẩn SIM điện thoại của Việt Nam)
h. Lương tháng (tính theo USD)
i. Quỹ sinh hoạt chung hằng tháng
2. Hằng tháng nhân viên phải đóng quỹ sinh hoạt chung theo bảng
sau
Mức lương Quỹ
<= 200USD 0% lương
200USD < lương <= 400USD 1% lương
400USD < lương 600USD 3% lương
3. Thông tin của nhân viên được nhập từ bàn phím. Yêu cầu: phải
kiểm tra dữ liệu đầu vào.
4. Tính quỹ sinh hoạt chung mà mỗi nhân viên phải đóng hàng
tháng.
5. Tính tổng quỹ sinh hoạt chung của toàn công ty X trong tháng
6. Lập báo cáo nhân sự bằng file text (.txt) cho biết thông tin: Số
CMND, họ tên, địa chỉ, giới tính của toàn nhân viên trong công ty.
Mỗi thông tin của nhân viên ghi trên một dòng.
7. Lập báo cáo kế toán cho toàn công ty, thông tin gồm: Số CMND,
lương tháng, tiền quỹ sinh hoạt chung của tháng đó. Ghi những
thông tin này ra file nhị phân.
8. Lập sổ địa chỉ cho công ty dưới dạng file excel (.xls). Thông tin
cần có là Số CMND, họ tên, địa chỉ, email, số điện thoại. Mỗi
thông tin của mỗi nhân viên ghi trên một row của file excel.
cuongcd said
Chào thầy, em có thắc mắc khi em tạo một chương trình dùng Struts,em tạo 1 java class nhưng không thể ” import java.util.*; “.Em không biết là do thiếu Libraries nào không,thưa thầy.
cuongcd said
Vâng,do tìm những bài viết liên quan trong wordpress của thầy,e thấy mình chưa cài đặt Environment Variables nên không có thư viện”java.util”.Cám ơn những bài viết của thầy.
nha said
Thưa thầy, em chưa biết biết gì về java và muốn học java thì em cần phải làm gì để học tốt java thưa thầy
vodanh said
thầy ơi:
cho e hỏi tí:
trong java table có phần hiển ẩn cột như trong c# (datagridview có visible) đó ko thầy?
nếu có thì thầy nói giúp e với>>>
thaks kiu thầy nhiều
Lipton said
Cho me hoi em dang dung eclipse galileo nhưng sao em gõ tiếng việt có dấu không được?
vậy làm thế nào để gõ tiếng việt trong eclipse galileo hay phien ban nao cua eclipse mà gõ được tiếng việt?
Cám ơn nhiều
Diễm Thúy said
Thưa thầy cho em hỏi khi tạo 1 lớp cha thì trong lớp cha đó mình có tạo constructor và getter setter cho lớp cha không?Em đang học kế thừa trong java.Mong thầy trả lời giúp em.Em xin cảm ơn thầy.
Nguyen Thanh Thao said
Mong mọi người và Thầy giúp đỡ, mình muốn xử lý ký tự, mình có 1 chuỗi vào, gõ từng ký tự thì muốn ký tự đó được phóng lớn lên tại vị trí đó (để thông báo là gõ đúng hoặc sai) thí phải làm sao à? Mong mọi người giúp đỡ!
THÁI TẤN KIÊN said
alo chào Thầy Hải
Vậy là em gặp lại Thầy ở DH Gia định. Cách đây 5 năm em học trung cấp ở Bà Rịa cơ sở 3 DH CN4 lớp TCTH33V thầy dạy môn C# lúc đó thầy mới về trường bây giờ em nhận ra thầy là câu nói “nó chửi” lúc thầy chạy xe từ TP.HCM xuống Bà Rịa đến thị xã thì Thầy bị bắt xe do chạy quá tốc độ, lúc đó thầy còn trẻ và hơi chảnh hành cả lớp học bị rớt nhiều lắm. Bây giờ lại học môn thầy em phải cố gắn để không bị rớt.Bây giờ kinh tế của thầy chắt khá lên nhiều rồi. Em cùng quê với thầy là Quảng Nam yêu thương
dangphuong505 said
Thầy ơi cho em hỏi chút ạ.
Em dùng netbeans 7.3 trong lập trình java, nhưng khi em viết bất kì 1 project nào và run thì nó đều báo lỗi sau, mặc dù máy của em đã cài PATH thành công rồi. Thầy sửa giúp em với ạ. Em cảm ơn thầy.
run:
Error: Could not find or load main class first.First
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Nguyễn Xuân Vinh said
Xin chào bạn, mình mới học java, hiện có một bài tập cần giúp đỡ, nội dung như sau:
1.Class Customer is the class which represents a customer. Each customer include cusID (string),
Name (string), gender (boolean), age (int)
Methods:
– A parametered constructor
– Method toString will return a string that formatted as:
“Customer ID: ” + cusID + “ Name: ” + Name + “ Gender:” + gender + “ age: ” + age
-Method inputCustomer() used to accept information of customer
2.Class CustomerList in that declare a List (LinkedList/HashTable/TreeMap) to store customers.
Methods:
– Method addList() used to append customer into list
– Method readFileTextToList(string fileName) used to read customers and append to List
– Method displayList() used to display customers in the List
– Method saveToBinFile(string fileName) used to write the customer list into file with name fileName
– Method saveToTextFile(string fileName) used to write the customer list into file with name fileName
– Method readFile(string fileName) used to read and display customers in the file fileName
– Method searchCustomer(string cusID, string fileName) used to find & display information of a customer with cusID
3.Class CustomerTest
A main method will help user manage customers through a menu as following:
1- Add new customer
2- Add customer to List
3- SaveList to binary file / Save List to text file
4- Read binary file into List / Read text file into List
5- Display customers list from binary file / Display customers list from text file
6- Search a customer by ID in the text file
7- Quit
Trên lớp có giới thiệu về một số collection nhưng chỉ giới thiệu sơ bộ, về bài này nếu làm ArrayList thì dễ xử lý nhưng yêu cầu chỉ làm về LinkedList/HashTable/TreeMap, đang tìm hiểu nhưng chưa rõ cách đưa đối tượng vào và làm sao truy xuất từng phần tử trong đó.
Xin giúp đỡ.thêm,
Thanks
huong said
thầy giúp em bài này với : lập trình hướng đối tượng trên MFC.
mô phỏng hoạt động của ròng rọc cố định. em cảm ơn thầy
tranthihoangyen93 said
thầy ơi!
thầy có thể chỉ cho em làm sao có thể làm game tìm điểm khác nhau giữa 2 hình trong java ko thầy. Vì em đang làm một đồ án java mà các phần ý tưởng khác đã xong chỉ còn có phần này thì em ko biết. Mong thầy có thể giúp đỡ cho em !
Kháng Mập said
thay co soucre lap trinh phan mem xem boi tu vi ? or lt giao dien atm + ngon ngu java giao dien form client server
Tan said
Chào thầy!
Thầy giúp em khắc phục lỗii: khi chạy project trong netbean thì ko bị lỗi nhưng khi build ra file jar thì bị lỗi,
Tan said
Chào thầy!
Thầy giúp em khắc phục lỗi: khi chạy project trong netbean thì không bị lỗi font tiếng việt nhưng khi build ra file jar thì bị lỗi font tiếng việt.
Tan said
Em tìm được cách khắc phục rồi thầy: tạo biến môi trường JAVA_TOOL_OPTIONS với value Dfile.encoding=UTF8
Sarah Nguyen said
Chào thầy!
Thầy cho e hỏi cách sắp xếp dùng stack trong java(không dùng phép so sánh số) thì thuật tóa như thế nào ạ?
ngochien said
Em là người mới học Java,Thầy có thể hướng dẫn giúp em bài này được không thầy, e cám ơn thầy!
Tạo một dự án (application) có 2 gói:
-Gói 1: package_A: gồm (các) lớp chứa các phương thức để tính: cộng, trừ, hai số.
-Gói 2: package_B: gồm (các) lớp chứa phương thức sau:
Tính phép nhân a*b = a+a+…+a(n lần): thông qua lời gọi hàm cộng ở gói package_A
Sử dụng hai phương thức cộng ở package_A và nhân ở cùng gói để tính biểu thức S=1*2+2*3+…*(n+1)*n.
Shibazakura Nguyen said
Dạ em chào thầy ạ!
Thầy cho em hỏi: cho một quả bóng chuyển động trong một vùng giới hạn làm sao mà cứ 20s thì trái banh lại chyển màu từ đỏ sang xanh được z thầy?
em cảm ơn thầy ạ
BinhHT said
Thầy cho em hỏi:
Viết chương trình bouncing ball với các điều kiện sau:
– Điều chỉnh được số lượng quả bóng
– Ghi lại quỹ đạo bay vào file
– Xuất ra quỹ đạo bay đã ghi
mrnguy3n said
em chào thầy.
hiện tại em cần đang học về java. Em làm code có 1 vấn đề xuất hiện :em cần tạo 1 mảng trong đó mỗi thành phần của mảng là 1 mảng.
thầy có thể cho em ví dụ luôn được không ạ.
Võ Văn Hải said
mảng của 1 mảng là jagged array. Ví dụ về 1 mảng kiểu nguyên. đổi kiểu khác theo yêu cầu của bạn
int [][]a=new int[10][];
a[0]=new int[5];
a[1]=new int [2];
//…
ngoc said
em chào thầy
cho em hỏi về mảng được không ạ
Mảng chuỗi 1 chiều chứa danh sách họ và tên sinh viên
String[] hoten = {“Tuấn”, “Hạnh”, “Cường”}
Mảng 2 chiều chứa điểm toán, lý và hóa của các sinh viên
Double[][] diem = {{5,6,7}, {7,9,5}, {8,3,4}}
Với cấu trúc dữ liệu này ta có thể hiểu điểm của Hạnh là
Toán:7
Lý:9
Hóa:5
Hãy duyệt các mảng, tính và xuất điểm trung bình của mỗi sinh viên
Tuấn: 6
Hạnh: 7
Cường: 5
thì làm sao thầy.