Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Java

Java căn bản

Java Nâng cao

562 Responses to “Java”

  1. vovanhai said

    Mọi vấn đề về lập trình java, chúng ta có thể thảo luận ở đây.

  2. hTUng said

    Cho em hoi muon lap trinh Swing co phai down them goi thu vien nao khac khong a, hinh nhu trong JDK ko co

  3. vovanhai said

    Sử dụng gói swing, ta phảii import javax.swing.*, các sự kiện được phân bố ở 2 gói java.awt.event hoặc javax.swing.event.
    Tất cả các gói này trong JDK chuẩn đều có.

  4. hTung said

    Cảm ơn thầy

  5. hTung said

    em mới viết 1 chương trình nhỏ để giúp các bạn học Java, do thời gian hơi gấp nên có thẻ dữ liệu chưa đầy đủ. Thầy có thể cung cấp cho em 1 só tài liệu tiếng việt về các method trong Java được ko ạ. Nếu được thầy có thể giới thiệu cho các bạn trong lớp down về và đóng góp dữ liệu cho chương trình.
    Đây là link download

    http://www.mediafire.com/?zzditcpmfjm

    Cám ơn thầy
    (Bạn nào đọc được có thể gửi mail cho mình pham.tung1@gmail.com để lấy mã nguồn)

  6. hTung said

    Chương trình này có tham chiếu đên MS ActiveX Data object 2.7 libary

  7. Tài liệu các method trong java thì có sẵn document của javadoc rồi. download javadoc tại http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6-doc.zip?BundledLineItemUUID=p45IBe.otO0AAAEcWmJmPm5T&OrderID=ZZZIBe.oo48AAAEcTmJmPm5T&ProductID=pb7ACUFB2NsAAAEY08A5AXuR&FileName=/jdk-6-doc.zip
    hoặc vào http://www.sun.com/download/index.jsp sau đó chọn javadoc.
    Mọi tài liệu về lập trình nên đọc bằng tiếng Anh. Mọi thứ đều rất rõ ràng.

  8. hTung said

    Sr em lỡ đặt pass file data nên có thể chưa truy cập được, thầy download lại tại đây

    http://www.mediafire.com/?gcyxmymj4cx

  9. hTung said

    Đây là bản có password đã được sửa lỗi, nếu ko chạy được thầy nói giùm em

    http://www.mediafire.com/?aejjhmoiyfe

  10. [KST] said

    phan` mem cua ban viet hay day, thanks da up ^^

  11. hTung said

    Thank thầy có javadoc rùi không viết nữa

    Cho em hỏi về cách sử dụng abstract và lớp trừ tượng, thầy có giải thích thêm cho em không a.

  12. vlinh said

    Da thay co the cho em em biet la co tai lieu nao ve Java bang tieng viet khong a?De de tham khao ay ma,
    cam on thay.

  13. SCA_Romeo said

    Thay oi. Trong Slide hoc Java can ban co 1 so source code, nhung em tim ko thay trong sach, thay up len may source code do cho em di thay!

  14. hTung said

    Em chua hieu lam ve cong dung cua method hashCode thay dung trong vi du, thay co the ch biet method nay dung lam gi trong cac lop khong a.

  15. ytuongjavavietnam said

    ai can sach java tieng viet, tieng anh thi lien lac voi nick minh` nha:
    thaitu_sanhdieu_dnt2000.
    Than.

  16. haolongvt said

    Thầy Hải ơi em học lớp NTTH35AB, e không thấy đề tài java,thầy gửi cho em dùm nha.em cảm ơn thầy.mã đề tài của nhóm em là 42, hl_hl_vt@yahoo.com

  17. tinhphaai090 said

    em muốn kết nối thiết bị bên ngoài qua cổng com or USB thầy có tài liệu nào cho em dung không tiếng việt nhe thầy. cảm ơn thầy
    tinhphaai090@yahoo.com

  18. changngoc said

    chào Thầy!
    Em là sinh viên lớp NCTH1A. Thầy không dạy nhóm em nhưng em rất muốn trao đổi và học hỏi ở thầy nhưng không biết thầy có cho phép không. Em có rất nhiều vấn đề cần hổi về môn java. Mong thầy cho phép.
    Chào thầy, chúc thầy có một ngày vui vẻ.

  19. dao said

    em có câu hỏi nhỏ là em đang làm đề tài về máy rút tiền ATM và em có chụp một tấm hình từ máy rút tiền. Em muốn thiết lập tấm hình để nó làm nền cho cái JFrame của em để em đưa mấy cái button lên đúng vị trí nút của tấm hình mà em chụp. Vậy xin thầy chỉ em code của việt thiết lập hình nền ko ạ. Em xin cám ơn thầy

  20. tien long said

    Mong anh comment cho chủ đề này
    Cảm ơn anh nhiều!

  21. vovanhai said

    Về việc chụp hình máy ATM rồi đưa các components lên đúng các vị trí của tấm hình thì không có gì khó cả. Code của đoạn code cho hình nền đã có trong bài Hình nền trong JFrame. Bạn xem nhé! có gì thắc mắc tiếp tục hỏi thêm.

  22. Tran Quang Phu said

    Thầy ơi!! Hiện nay lập trình java là dùng chương trình nào để lập trình cho thuận tiện vậy Thầy. Trong lớp dạy dùng JCreater Pro, làm 1 bài mà có thiết kế giao diện code với code. Học đến khi nào thì mình có thể dùng chương trình có kéo thả như bên C# hở Thầy.
    Chào Thầy!! ^__^
    Chúc Thầy Mạnh Khỏe ạ. !!

  23. vovanhai said

    Khi dùng các IDE để lập trình java, theo ý tôi thì yếu tố free phải đặt lên thứ 2. Thứ nhất là phải tốt (đương nhiên!). Tôi khuyến cáo nên dùng Eclipse tại http://www.eclipse.org/downloads/. Đây là IDE cực tốt và rất hay ho để lập trình. Còn nếu bạn có ý định thiết kế form theo cơ chế kéo thả thì nên dùng NetBeans tại url: http://www.netbeans.org/.
    Chúc vui!

  24. long said

    lâu rồi không len blog của anh. Nhiều bài viết về JAVA mà sao không thấy anh viết về các FW(framework) trong JAVA nhỉ

    Best Regards

  25. nguyenthanhcong said

    chào thầy.
    khi nào thầy rảnh, thầy có thể post 1 cái bài riêng về cách sừ dụng IDE Eclipse6x được không thầy. tại em thấy cái IDE này rất hay mà em chưa biết được các chức năng hay nhất của nó.
    đơn giản là xem chỉ biết mấy cái đơn giản của nó à.

    thấy có thề làm 1 cái topic hướng dẫn sử dụng IDE eclipse 1 cách từ cơ bản đến chuyện nghiệp được ko à.

    để giúp chúng em biết và làm quen với Eclipse 1 cách tốt nhất . 1 IDE tuyệt vời mà thấy nói ạ.
    xin cám ơn thầy.

  26. vovanhai said

    Thầy nghĩ không cần bởi em cứ dùng đi thì sẽ biết. Nhưng nếu có thời gian thầy sẽ viết sớm. Chúc vui!

  27. khoa said

    Thầy ơi có cách nào để chuyển chuỗi sau thành phép tính được không thầy
    String s=”1+2*3-4″;
    Làm sao để có kq=3.

  28. vovanhai said

    Em sử dụng StringTokenize để phân giải các toán tử và toán hạng rồi thực thi chúng. Thân!

  29. NamWWE said

    Thầy cho em hỏi down cuốn java2 ở mục nào vậy .
    Mà học môn Java nâng cao thì nên dùng bản Eclipse nào vậy thầy

  30. vovanhai said

    Ở mục java nâng cao ->textBook.

  31. ThangDT said

    EM đang tìm hiểu về J2ME mà tiếc quá thầy không có bài viết nào về nó.

    Kính chúc thầy cuối tuần vui vẻ !

  32. Cuongv said

    Em chào thầy !
    Em không phải là sinh viên của thầy, nhưng em vô tình vào blog của thầy và đã đọc một số bài viết về RMI của thầy. Hiện tại em đang làm Project java về hệ thống Client-Server trong mạng LAN (Hệ thống thi trắc nghiệm) có sử dụng RMI. Sau khi đọc bài của thầy thì em có một số thắc mắc như sau,em mong thầy giúp đỡ em :
    – Ngoài dùng các mảng Object (đã extend Serializable) để client nhận dữ liệu từ Server thì em có thể dùng cái gì khác không ạ (vì hiện tại phần client của em không dùng các object này và đang bị lỗi)?

    – Em mong thầy nói rõ hơn một chút về cách tạo và tác dụng của file client.policy.

    Em cảm ơn thầy và chúc thầy mạnh khỏe.

  33. vovanhai said

    Tui chưa nắm rõ về hệ thống bạn viết như thế nào nhưng tôi xin nói sơ vài điều:
    1. Mảng không phải là chọn lựa hay. Bạn có thể dùng đối tượng thuộc collection framework để viết, ở có có rất nhiều điều hay. Bạn ó thể dùng HashMap, TreeMap, HashSet, TreeSet,…
    2. Tác dụng của file policy ngay như phần mở rộng đã nói (policy có nghĩa tiếng Việt là “chính sách”). Nó cấp phép cho ứng dụng client của chúng ta có thể connect, read,…
    Chúc vui!

  34. alimohameta said

    Em chào thầy! Em cũng xin hỏi thầy một vaì chỗ. Em đang làm project, và đang cài Eclipse với JDK1.6. Em muốn kết nối với cơ sở dữ liệu thì nên cài chương trình quản lý cơ sở dữ liệu nào và thầy có thể cho em một vài ví dụ được không ag?Em xin cảm ơn thầy.

  35. vovanhai said

    RDBMS thì có rất nhiều. Access là phổ biến và hình như máy nào cũng có (!!!). Nếu tốt hơn bạn có thể dùng MS SQL server. Còn theo tôi, bạn nên dùng MySQL ví nó free và cũng rất tốt. Còn ví dụ thì bạn hãy xem ở http://vovanhai.wordpress.com/java/l%e1%ba%adp-trinh-java-nang-cao/jdbc-java-database-connectivity/

  36. Cuongv said

    em chao thay !
    Hien jo, do an cua em (client-server RMI) dang co loi nay,em chua bit loi do dau thay co kinh nghiem ve loi nay thi giup em voi :
    init:
    deps-jar:
    compile-single:
    run-single:
    java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
    java.lang.ClassNotFoundException: com.xtest.RMI.InterfaceServer (no security manager: RMI class loader disabled)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at java.rmi.Naming.lookup(Naming.java:84)
    at Client.View.LoginPane.(LoginPane.java:32)
    at Client.View.MainClient.ViewLoginPane(MainClient.java:39)
    at Client.View.MainClient.(MainClient.java:29)
    at Client.View.MainClient$3.run(MainClient.java:141)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    Caused by: java.lang.ClassNotFoundException: com.xtest.RMI.InterfaceServer (no security manager: RMI class loader disabled)
    at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:535)
    at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
    at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
    at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
    at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1531)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    … 14 more

    Em cam on thay !

  37. nguyen dinh thang said

    chao thay!
    nho thay coi dum em cai elip no khong chay ma no bao:’launching Client’ has encountered a problem.Exception occurred executing command line.

    Exception occurred executing command line.

    Cannot run program “C:\Program Files\Java\jre6\bin\javaw.exe” (in directory “D:\HỌC TẬP\JAVA\hoctap\Java Nâng Cao\NetWorking”): CreateProcess error=267, The directory name is invalid

    coi dum em nha thay.cach khac phuc ra sao,chi dum em luon

  38. nguyenduythuy said

    chào thầy. Em là sinh viên trường ĐHCNTPHCM. Em đang làm cái Jtree co kết nối cơ sở dữ liệu. Thầy có thể chỉ em được không ạ. Mong thầy giúp dùm em. Thanks thầy.
    Chúc thầy vui vẻ

  39. nhatduyle said

    em chào thầy, thầy có thể chỉ em cách đóng gói 1 chương trình thành file jar được không ạ, em hiện đang học java với cô Vân, em đang làm đề tài quản lý Siêu thị, dùng csdl bằng Access.
    Em cảm ơn.

  40. vovanhai said

    Nếu trong Eclipse, em chọn menu File->Export, chọn Java->Runnable Jar File. Nếu làm bằng tay thì tham khảo đây: http://vovanhai.wordpress.com/java/l%e1%ba%adp-trinh-java-can-b%e1%ba%a3n/dong-goi-1-%e1%bb%a9ng-d%e1%bb%a5ng-java-thanh-file-exe/

  41. Gian nan said

    Em chào thầy ạ
    Em học cũng lập trình trong mức bình thường, Theo kinh nghiệm của thầy, thầy giúp em định hướng nên theo ngôn ngữ nào là có lợi nhất khi đi kiếm việc làm vào thời buổi hiện nay và có thể trong tương lai ?. Em dc biết ngôn ngữ Java rất mạnh…
    Em cảm ơn!!!

  42. Neo said

    Chào thầy!!

    Em đang làm đề tài java,kết nối cơ sở dữ liệu Access và đang gặp vấn đề khi load chữ tiếng Việt lên form thì không hiển thị được tiếng Việt. Thầy có cách nào để load dữ liệu lên form cũng như cập nhật vào csdl nhưng không bị mất font tiếng Việt(Mong thầy sớm phản hồi vì em sắp nộp đề tài).

    Chúc thầy một ngày vui vẻ!!!!

    Em xin cảm ơn thầy.

  43. Quan said

    Chào thầy Hải, em đang có 1 số vần đề về đưa dữ liệu từ database vào textField, mong thầy giúp đỡ, em không tìm thấy email của thầy trên web này nên không biết liên lạc với thầy bằng cách nào!

  44. phammy said

    thầy ơi cho em hỏi ,em muốn cập nhật dữ liệu cho nút các nút vi dụ như thêm ,xóa sửa,tìm kiếm thì em phải làm sao .thầy có thể hướng dẫn giúp em hoặc có thể cho em xin tài liệu được không ạ.

  45. phammy said

    em làm những cái button này bằng công cụ eclipse

  46. Quốc Quân said

    thầy ơi, mong thầy bớt tí thời gian quí báo chỉ cho e cách cấu hình eclipse để viết 1 chuong trình jsp nha thầy. e đã cấu hình 1 nhiều lần mà ko dc nen mới nhờ thầy, mong thầy giúp em, em cảm ơn thầy nhìu.

  47. vovanhai said

    Em xem trong mục http://vovanhai.wordpress.com/web/jsp/.

  48. Enzo281 said

    Em chào Thầy, chào các bạn. Em đang muốn xem lại các kiến thức Java thì tìm thấy được một link học java online rất hay, các bài học được cung cấp rất cấu trúc từ cơ bản đến nâng cao, cả bài tập cũng rất đầy đủ. Gởi Thầy cũng như các bạn tham khảo. Em nghĩ cũng giúp rất nhiều trong việc giảng dạy nữa. Link này cũng đã có lâu, có thể Thầy và một số bạn đã biết nhưng dù sao em thấy hay nên cũng muốn gởi cho mọi người cùng xem.

    http://www.javapassion.com/ – Trên website đã có hướng dẫn rất chi tiết các cách học, mọi người chịu khó đọc chút tiếng Anh là hiểu liền.
    Chúc Thầy và các bạn sức khỏe, thành công.

  49. vovanhai said

    Cám ơn em! Trang này tôi cũng đã tham khảo từ đó. Đó là 1 trang web rất hay!

  50. Vinh Thang said

    Thầy cho em hỏi muốn vẽ polygon trên 1 canvas thì làm cách nào. Em ko biết cách để bắt điểm đầu và điểm cuối cho hình được khép kín. Và em muốn làm 1 chức năng fill để đổ màu vào 1 hình khép kín. Thầy giúp dùm em

    Đây là bài của em thầy coi dùm

    http://rapidshare.com/files/236551317/VinhThangPro2.rar.html

  51. Quoc Tuan said

    Thầy cho e hỏi:
    – “Trong java” trong form có trường nhập ngày tháng năm. Bây gio e ko muốn nhập từ bàn phím mà cho lua chon giống như calendar của Windows thi lam cách nào thưa thầy?(Cũng giống như color chooser).
    Mong hồi âm!
    Chúc thầy sức khỏe!

  52. vovanhai said

    Bạn dùng 1 gói calendar riêng là OK rồi. Google trên mạng đầy. Nếu k tìm được thì mail cho tôi.

  53. Trần Văn Tấn said

    bạn nào có ví vụ về web đa ngôn ngữ làm bằng trust không.

  54. Trần Văn Tấn said

    Mình đang định làm một cái web đa ngôn ngữ bẳng Struts nhưng mà thấy chưa biết bắt đầu thế nào. Bàn nào có ví vụ dù nhỏ thôi, chỉ cần đầy đủ các bước căn bản là được. Mình nhìn vào học sẽ nhanh.

    Thanks nhiều, mình đang rất cần.

  55. hungkin said

    “Mình đang định làm một cái web đa ngôn ngữ bẳng Struts nhưng mà thấy chưa biết bắt đầu thế nào. Bàn nào có ví vụ dù nhỏ thôi, chỉ cần đầy đủ các bước căn bản là được. Mình nhìn vào học sẽ nhanh.”
    ———
    hi bạn mình cũng đang nghiên cứu về vd này trao đổi với mình qua hungkin2008@gmail.com nhe’
    thân!
    ————————————-

  56. Trần Thiện said

    Chào thầy,

    Cho em hỏi trong java co tạo các form hay button đa hình được không? như thế nào? tương tự như C# ta chi cần định nghĩa lại thuộc tính đồ họa ‘Region’.

    Em cảm ơn thầy!

  57. TrinhCongSon said

    Hi Hai!
    Lam on cho minh hoi:
    Minh dung Visual Editor keo tha giao dien trong Eclipse. Tao mot nut bam OK khi click vao thi no se chay 1 Thread voi delay la 1 giay hien thi so giay giam dan tu 5->0 bang jLabel. Nhung loi la o cho: No van chay thread nhung lai ko hien thi so giay giam dan ra doi tuong JLabel duoc. Sau day la doan code:

    import javax.swing.SwingUtilities;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import javax.swing.JButton;
    import java.awt.Rectangle;
    import javax.swing.JLabel;

    public class delete extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel jContentPane = null;
    private JButton jButton = null;
    private JLabel jLabel = null;

    /**
    * This method initializes jButton
    *
    * @return javax.swing.JButton
    */
    private JButton getJButton() {
    if (jButton == null) {
    jButton = new JButton();
    jButton.setBounds(new Rectangle(103, 17, 59, 26));
    jButton.setText(“OK”);
    jButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
    for (int i=5;i>=0;i–)
    {
    jLabel.setText(String.valueOf(i));
    System.out.print(i+” “);
    try
    {
    Thread.sleep(1000);
    }
    catch(InterruptedException ie)
    {
    ie.printStackTrace();
    }
    }
    }
    });
    }
    return jButton;
    }

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    delete thisClass = new delete();
    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    thisClass.setVisible(true);
    }
    });
    }

    /**
    * This is the default constructor
    */
    public delete() {
    super();
    initialize();
    }

    /**
    * This method initializes this
    *
    * @return void
    */
    private void initialize() {
    this.setSize(300, 200);
    this.setContentPane(getJContentPane());
    this.setTitle(“JFrame”);
    }

    /**
    * This method initializes jContentPane
    *
    * @return javax.swing.JPanel
    */
    private JPanel getJContentPane() {
    if (jContentPane == null) {
    jLabel = new JLabel();
    jLabel.setBounds(new Rectangle(60, 75, 139, 21));
    jLabel.setText(“Count down”);
    jContentPane = new JPanel();
    jContentPane.setLayout(null);
    jContentPane.add(getJButton(), null);
    jContentPane.add(jLabel, null);
    }
    return jContentPane;
    }

    }

    Rat mong duoc giup do. Cam on da doc bai

  58. vovanhai said

    Bạn phải viết lại lớp abstract của nó đấy.

  59. vovanhai said

    Hướng dẫn:

    
    import java.awt.BorderLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    public class SwingTimer extends JFrame implements ActionListener{
    	private JLabel lbl;
    	private int i=100;
    	private JButton btnStart;
    	public SwingTimer() {
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    		setTitle("test Timer");
    		setSize(500,400);
    		this.add(lbl=new JLabel("00",JLabel.CENTER));
    		lbl.setFont(new Font("Arial",Font.BOLD,40));
    		this.add(btnStart=new JButton("Start"),BorderLayout.SOUTH);
    		btnStart.addActionListener(this);
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource().equals(btnStart)){
    			new Thread(new MyRunnable()).start();
    		}
    	}
    
    	public static void main(String[] args) {
    		new SwingTimer().setVisible(true);
    	}
    
    	class MyRunnable implements Runnable{
    		@Override
    		public void run() {
    			try {
    				for(int j=i;j>0;j--){
    					lbl.setText(i+"");
    					Thread.sleep(1000);
    					i--;
    				}
    			} catch (Exception e) {
    			}
    		}
    	}
    }
    
    
    
    
    

  60. TrinhCongSon said

    Cam on ban nhieu.
    Minh lam dc roi.
    Tien the cho minh hoi: Lam sao de ket noi CSDL trong Eclipse phien ban Galileo? Phai down nhung plugins nao va config ra sao?
    Neu co the ban cho minh mot demo dc ko? (Hinh anh cang tot)
    Thanks anyway.

  61. Chao Thay,
    cho em hoi cach su dung giao dien ung dung trong netbean 6.5,em muon viet chuong trinh bang ngon ngu java de tuong tac tren Form cung giong het nhu Microsoft Visual Studio 2005,2008.Mong Thay huong dan dum .Chuc Thay luon vui ve

  62. Chao Thay,
    em hoi cach su dung GUI trong netbean6.5,em co vao tao GUI de viet chuong trinh ung dung cung nhu giong Microsoft Visual Studio 2005,2008 nhung em con ngo ngac voi netbean.vi du ben C# khi double click nut button =>ham de viet code con ben netbean thi double click nut jbutton=>create action’s method gi do em chua hieu lam.Xin Thay Vui long huong dan cach Lap trinh Tren Giao Dien bang netbean.Em xin Cam On Thay

  63. vovanhai said

    Muốn làm việc với cách design giao diện với Netbeans, trước hết bạn phải hiểu về cơ bản các đối tượng về GUI cũng như các Listener, LayoutManager,… của nó. Bạn có thể học trong các sách nói về java. Có cái cơ bản đó rồi thì việc design với NB trở nên dễ dàng hơn. Java nó không như C#, VB đâu.

  64. Cam on Thay,E da design va thuc thi chuong trinh duoc rui.cach khai bao Acitonlistener,layoutMangager,panel(e co hoc o java1 rui).
    Thay cho e hoi 1 phan nho trong jsp,vi du nhu e viet chuong trinh quan ly nhac(msbai hat,ten bai hat,ten nhac si,ten ca,videoClip) bao gom:trang index.jsp(trang index nay co 2 trang insert.jsp va trang xemdulieu.jsp)e da viet code va ket noi bang he CSDL mySQL chay chen vao OK xem Du lieu cung OK, nhung e hoi 1 dieu la sao e click trang xemdulieu.jsp thi bieu tuong icon(vi du:windows media player) cua videoClip no hien len nhu mong muon nhu e da lam hien thi hinh anh cung nhu chuong trinh sinh vien tuong tu(chi co file .gif la no hien thi hinh anh thui con file .jpeg no ko hien thi duoc va ko backup trong mySQL) o day e noi la chuong trinh nay chay ok nhung dieu thac mac e da trinh bay o tren mong Thay giap dap dum e.Em Chan Thanh Cam On Thay

  65. va co dieu nay nua Thay e co vao trang http://saloon.javaranch.com de xem cau hinh cua Apache/Tomcat dieu co cau hinh kem theo duoi file .mp3 hay la .jpeg… nhung sao e ko hieu chi co duoi file .gif no moi hien thi hinh anh duoc con lai la ko duoc(va 1 e muon hoi nua la chuong QLSV viet bang jsp(mssv,htensv,diachi,hinh anh)o day co 1 dieu la khi chen vao mySQL la OK nhung Stop Xamp roi Start Xamp=>MySQL GUI Tools 5.0 =>mySQL nhung no ko backup duoc du lieu khi vua moi chen vao) Tai sao vay Thay giap dap dum e.e cam on

  66. ducedu said

    Minh su dung Eclipse – Galileo nhung khong biet cau hinh de ket noi voi database (SQL Server) nhu the nao? Co phai cai dat them plugin gi khong? Rat mong duoc chi dan. Tran trong cam on

  67. vovanhai said

    Copy file driver (file jar) vào thư mục lib là xong.

  68. BAMBAM said

    Thay cho em hoi ve viec cai ctrinh java (JCreate va JDK),truoc do em da cai roi no chay binh thuong nhung co 1 so loi thong bao khi chay (RUN) .Em da xoa toan bo ctrinh java tren de cai lai moi nhung khi cai JDK no xuat hien 1 thong bao:
    ” This installation package could not be opened . Verify that the package exists that you can access it or contact the application vendor to verify that this is a valid windows installer package.”
    Vay la sao ha thay?

  69. ducedu said

    Lam ơn chỉ mình cách làm cho một form activated. Tức là tạo một form Login va một form Main. form Login đang active thì không thể truy xuất đến form Main được. Trừ khi đúng mật khẩu. Chân thành cảm ơn nhiều.

  70. vovanhai said

    viết code như sau cho việc nhấn nút Logon trong form Login:

    if(lg.logon(us,psw) nào đó){
    frmMain frm=new frmMain();
    frm.setVisible(true);
    }

  71. vovanhai said

    Download lại. Gói này bị lỗi rồi!

  72. ManhKha said

    co ai chi cho minh ve da ngon ngu trong java ko ?thanks

  73. Thầy chỉ dùm cách tạo mối quan hệ giữa các table trong MySQL GUI Tools 5.0.Trước đó em có search trên google tìm kiếm cách tạo quan hệ trong mySQL GUI Tools 5.0 nhưng đa phần trả lời chung chung em ko hiểu,Thầy hướng dẫn dùm.Em cám ơn Thầy

  74. vovanhai said

    Em tạo bảng ở phần 1 trước. Sau đó ở bảng trong phần nhiều em chọn lớp Foreign Keys em nhấn dấu + để thêm khóa ngoại rồi chọn bảng, trường.

  75. vovanhai said

    Bạn nên google CORBA

  76. Em đã Create join Table trong mySQL GUI Tools 5.0 được rồi,em cám ơn Thầy.Thầy ơi có thể giải thích dùm em Struct là gì vậy Thầy,trong java2 em có nghe Struct nhưng em không hiểu cấu trúc của nó

  77. KaKa said

    Thay co the huong dan cach ket noi mySQL trong J2EE:
    em co viet doan code ket noi nhu Sau:
    import java.sql.Connection;
    import java.sql.DriverManager;
    public class ConnectmySQL {
    private static Connection con;
    public static Connection Connectmysql(String database)throwsException{
    String url=”com.mysql.jdbc.Driver”;
    Class.forName(url);
    String dburl = “jdbc:mysql://localhost:3306/”
    +database+”?user=root&password=”;

    con=DriverManager.getConnection(dburl);
    return con;
    }

    }
    va Class Test la:
    public class Testketnoi {
    public static void main(String[] args) {
    try {
    Connection con=ConnectmySQL.Connectmysql(“qlsv”);
    System.out.println(con.getCatalog());
    con.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    }
    nhung khi Run Application thi no bao loi la:
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    Thay chi dan dum de em khac phuc loi .Xin cam on Thay

  78. KaKa said

    Con 1 Dieu nua Thay la em da cai dat drive mySQL trong bien moi truong nhung no cu bao loi nay hoi,va lai em lam cach khac la copy driver connection mySQL bo vao thu lib nhung cung khac phuc duoc loi tren

  79. vovanhai said

    Bạn chắc là có copy driver jar file vào thư mục WEB-INF\lib chứ?

  80. vovanhai said

    Struts chứ không phải Struct. Đó là 1 framework phát triển theo mô hình mvc. Bạn tham khảo trong blog có vài bài viết về Struts.

  81. samurai said

    thầy ơi cho em hỏi cách load dữ liệu từ một cột của một bảng trong CSDL lên một combobox trong java Swing

  82. vovanhai said

    Duyệt qua resultset rồi đưa vào combo:
    while(rs.next()){
    cbo.addItem(rs.getString(“tên field csdl”);
    }

  83. Thai An Thanh said

    Thưa Thầy,em muốn lam demo các bài toán sort trong Swing,thầy cho em hươ`ng lam dc ko ah,có tài liệu càng tốt em cam on thầy

  84. vovanhai said

    Em phải nghiên cứu về java2D để có thể làm được bài này.

  85. Thai An Thanh said

    em cảm ơn thầy.thầy co thể cho em cai demo MVC sử dụng observerable,va observer của java.util ,khi view implements Observer thì chỉ có duy nhất 1 hàm update(Object o)
    khi cần update nhiều vấn đề thì sao thầy.

  86. TranNgocBa said

    Thay oi cho em hoi,em muon doi vi tri cua 2 icon cho nhau lam sao vay thay,

  87. vovanhai said

    Icon gì? viết rõ ra chứ hỏi vậy ai biết mà nói!

  88. TranNgocBa said

    giong nhu doi vi tri 2 label do thay.thay cho em cai demo nha thay.em cam on thay!

  89. shuuichiakai said

    chao thay,em dang hoc java den phan ket noi CSDL .em dung jcreator de code va em khong biet cach ket noi jcreator den sql server 2005 thay co the chi cho em duoc khong,em cam on

  90. blacktiger said

    chào thầy, em đang học java và chuẩn bị làm project!!! em dùng elip để code thầy có thể chỉ em cách nào để inport và export data từ Excel sang SQLsever 2005, có code demo cụ hể thì càng tốt.
    cám ơn thầy

  91. Tran Minh Hien said

    thay` oi.Em dang lam` project java quan ly’ thong tin. Co’ cach’ nao` add fle document hay PDF vao` trong CSDL dc ko . E thu? roi` ma` chi? copy duong` link vao` thoi. Mong thay` chi? giup’ em

  92. vovanhai said

    Write BLOB into database:
    import java.io.File;
    import java.io.FileInputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;

    public class Main {
    static String url = “your url”;
    static String username = “username”;
    static String password = “welcome”;

    public static void main(String[] args) throws Exception {
    Class.forName(“your driver”);
    Connection conn = DriverManager.getConnection(url, username, password);
    conn.setAutoCommit(false);

    String sql = “INSERT INTO pictures (name, description, image) VALUES (?, ?, ?)”;
    PreparedStatement stmt = conn.prepareStatement(sql);
    stmt.setString(1, “java.gif”);
    stmt.setString(2, “Java Official Logo”);

    File image = new File(“D:\\a.gif”);
    FileInputStream fis = new FileInputStream(image);
    stmt.setBinaryStream(3, fis, (int) image.length());
    stmt.execute();

    conn.commit();
    fis.close();
    conn.close();
    }
    }
    Đọc BLOB data từ databse
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;

    public class Main {
    static String url = “your url”;
    static String username = “username”;
    static String password = “welcome”;
    public static void main(String[] args) throws Exception {
    Class.forName(“your Driver”);
    Connection conn = DriverManager.getConnection(url, username, password);

    String sql = “SELECT name, description, image FROM pictures “;
    PreparedStatement stmt = conn.prepareStatement(sql);
    ResultSet resultSet = stmt.executeQuery();
    while (resultSet.next()) {
    String name = resultSet.getString(1);
    String description = resultSet.getString(2);
    File image = new File(“D:\\java.gif”);
    FileOutputStream fos = new FileOutputStream(image);

    byte[] buffer = new byte[1];
    InputStream is = resultSet.getBinaryStream(3);
    while (is.read(buffer) > 0) {
    fos.write(buffer);
    }
    fos.close();
    }
    conn.close();
    }
    }

  93. RUBY Trần said

    Hi thầy , thầy hướng dẫn giùm con làm máy in để in ra 1 văn bản trong JPanel nha thầy , tại Project của con đa số các trang là Jpanel ,nên con không sử dụng được ứng dụng trong JTextArea, thầy cho con code demo nhá , con cám ơn thầy nhiều

  94. Võ Chí CÔng said

    Chào thầy !

    Em tên Công, em học khóa 7 của trường ĐHCN TPHCM. Hiện em đang đi làm và gặp vấn đề mong thầy biết giúp dùm em.

    Có cách nào để lấy UID của mobile device trong java không ạ. ( Phần này em cũng chưa rõ lắm về UID. Theo em nghĩ thì UID khác với số IMEI của thiết bị di động. Mỗi SIM thì sẽ có một UID khác nhau. Không biết suy nghĩ của em như vậy đứng không thầy )

  95. Tuan Duong said

    E chào Thầy!
    E đang là sinh viên và đang học chuyên nghành java!
    E đang viết thứ chương trình kế toán, cho một công ty kế toán. Hiện tại E đang gặp khó khăn là tài liệu về các nghiệp vụ trong kế toán.
    E rất mong rất mong được sự giúp đỡ của Thầy!
    Em cảm ơn Thầy.
    E xin chào Thầy!

  96. vovanhai said

    Bạn google nó, nhiều vô kể!

  97. Chí Công said

    Em tên Công, em học khóa 7 của trường ĐHCN TPHCM. Hiện em đang đi làm và gặp vấn đề mong thầy biết giúp dùm em.

    Có cách nào để lấy UID của mobile device trong java không ạ. ( Phần này em cũng chưa rõ lắm về UID. Theo em nghĩ thì UID khác với số IMEI của thiết bị di động. Mỗi SIM thì sẽ có một UID khác nhau. Không biết suy nghĩ của em như vậy đứng không thầy )

  98. giang said

    Em kính chào Thầy!
    Em tên Hà Kiều Giang
    Hiện đang học softech_aptech Đà Nẵng.
    Thầy có thể cho em hỏi :
    Em làm về JSP nhưng mà không biết tại sao nó báo lỗi về tomcat va jdbc , trong khi em đã add nó vao trong bài làm của em rồi.
    Em đã upload nó lên mediafire , Thầy có thể coi dùm em được không ?
    Em cám ơn Thầy nhiều .

    http://www.mediafire.com/download.php?yywzkznndzn

  99. manhtuong said

    chào anh!
    Em là thanh em dang học về struts 2.
    anh có thể cho em 1 vi du về template sử dụng struts2 và tiles trên xml được không ạ.

  100. Nguyễn Minh Khoa said

    Xin chào thầy.
    Em đang tìm cách truy xuất csdl mysql từ applet.Khi debug trong netbeans thì nó chạy được,nhưng khi em lấy file .class bỏ vào Html thì nó không truy xuất được.(các applet khác vẫn chạy bình thường).Xin thầy giúp đỡ.Đây là code của em:
    import java.applet.Applet;
    import com.mysql.jdbc.Statement;
    import java.awt.Graphics;
    import java.sql.*;
    //import java.awt.Label;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    public class Db extends Applet implements ActionListener{
    //public class Db extends Applet {
    String name;
    TextField tf_xuat;
    TextField tf_xuat1;
    public void Baza()throws Exception {
    tf_xuat = new TextField(15);
    tf_xuat1 = new TextField(15);
    tf_xuat.addActionListener(this);
    add(tf_xuat);
    add(tf_xuat1);

    Connection con = null;
    Class.forName(“com.mysql.jdbc.Driver”);//this line is making that error
    try{

    Class.forName(“com.mysql.jdbc.Driver”);
    String url = “jdbc:mysql://localhost:3306/tracnghiem”;
    con = DriverManager.getConnection(url, “root”, “123456”);
    Statement st = (Statement) con.createStatement();
    ResultSet rs = st.executeQuery(“select * from newtable”);
    while (rs.next()) {

    String KD =rs.getString(1);

    tf_xuat.setText(“Id ” + rs.getString(1));
    tf_xuat1.setText(“Question ” + rs.getString(2));
    System.out.println(“Id ” + rs.getString(1));
    System.out.println(“Question ” + rs.getString(2));
    System.out.println(“Answer ” + rs.getString(3));
    }

    } catch (Exception e) {
    e.printStackTrace();
    System.out.println(“Exception: ” + e.getMessage());
    } finally {
    try {
    if (con != null)
    con.close();
    } catch (SQLException e) {
    }
    }

    }

    public void init(){
    try{

    Baza();
    }
    catch(java.lang.Exception e){};
    }

    public void actionPerformed(ActionEvent e) {

    throw new UnsupportedOperationException(“Not supported yet.”);
    }
    }

  101. hoducthanhit said

    anh hải ơi hướng dẫn em cách up wordpress len host đi…thank anh..!!!

  102. Kien said

    Thầy ơi. Thầy có thể gửi em bài Demo Edit dữ liệu ngay trên DefaultTableModel vs chèn ComboBox vào DefaultTableModel được không ạ. Thầy gửi cho em file chay thì càng tốt :). Em cảm ơn

  103. phuoc said

    e chao thay!
    thay oi! hien em dang lam de an J2ME , thay co demo nao hay de cho em tham khao duoc ko thay?
    e cam on thay! chuc thay suc khoe.

  104. duoichonợc said

    Em dùng Netbean để đọc file xml nhưng với file lớn cỡ 100mb thi ko đọc đưoc, lam ơn jup em với

  105. vovanhai said

    Bạn dùng SAX thay vì dùng DOM.

  106. thanhtan said

    O phan dóng gói 1 ứng dụng thành executable-jar file.Em da thuc hien theo cac buoc o tren.va da tao duoc MyApp.jar.Nhung khi thuc thi file jar nay thi bao loi:Failed to load Main-Class manifest attribute from:E:/TyEx/MyApp.jar
    Nho thay giai thich giup em voi!

  107. duoichon said

    Khi làm bài tập em có một cái method chạy tương đối lâu mới ra kết quả, em muốn làm cái JProgressBar trong khi chờ đợi, nhưng không hiêu làm sao cái JProgressBar biết được khi nào thi cái method của mình hòan thành để nó tính %, xin thầy giúp em với!!

  108. Minh Huy said

    Thầy ơi sao em cài jdk 6u18 bị lỗi 1721 installer package gì đó nhưng khi em không đổi thư mục mặc định của nó cài vào programfile thì nó lại OK???

  109. ngocba said

    Thay cho em hoi muon lam 1 trang web ung dung javaFX va jsp sao thay.

  110. vovanhai said

    chưa có thời gian để làm demo về cái này. Đợi nhé!

  111. ngocba said

    thay lam demo login thui thay.cam on thay

  112. trinhthu said

    Em chào Thầy! E là sv trường dh công nghiệp lớp cdth7lt. hiện giờ e đang làm đồ án học phần về javafx nhưng e lên mạng kiếm tài liệu lại không có. Nếu Thầy có Thầy cho e xin được không a? E cảm ơn Thầy nhiều! email của em: thutrinh1988@gmail.com

  113. NamHung said

    Thầy cho em hỏi về phần CSDL .

    Em đang làm 1 project về phần CSDL của java, Em muốn hỏi ( khi em tạo xong form Login và nhấn Button( OK ) thì nó đồng ý cho đăng nhập ). Vậy mình phải liên kết đến CSDL như thế nào , mình có phải tạo user và pass trong CSDL trước rồi mới lien6 kết ra java không , và liên kết ấy ra sao ? . Em xài CSDl là SQL 2005 , và công cụ là Eclips .
    Cảm ơn thầy rất nhiều .

  114. Hung said

    Em đang làm đồ án cho Hà Lan, em muốn program support 2 ngôn ngữ đó là tiếng Anh và tiếng Hà Lan. Em xin hỏi thầy cách làm, mong thầy và mọi người giúp em. em xin cảm ơn

  115. mrthanh said

    xin anh chỉ cách cài đặt tomcat có thể chạy được jsf project ,xin chờ phản hồi

  116. Vũ Hồng Bảo Quốc said

    Em học lớp NCTH1A,em định sẽ làm lập trình web sau này, hiện em đã có kiến thức về ASP.NET và PHP nhưng em không biết mình nên có 1 chiến lược như thế nào, phải trang bị những kiến thức về các lĩnh vực nào và bao nhiêu thì được gọi là tạm đủ để có thể có được 1 nghề nghiệp ổn định sau khi ra trường, rất mong nhận được lời khuyên của thầy ! Chào thầy !

  117. vovanhai said

    Khó nói quá! Kinh nghiệm có được khi ta va chạm nhiều. Bây giờ theo tôi thì em cứ tập trung vào việc nâng cao khả năng mà em có bằng cách nghĩ ra những project rồi thực hiện nó. Điều đó sẽ làm cho em tiến bộ hơn.
    Chúc em thành công!

  118. vovanhai said

    không cài đặt gì cả. Nếu bạn làm bằng tay thì trong WEB-INF/lib của bạn có thư viện của jsf là OK. CÒn với netbeans thì khi bạn chọn framework là JSF nó sẽ tự động add các lib cho bạn. Chúc vui!

  119. vovanhai said

    Chịu khó tìm trong blog sẽ có đủ hướng dẫn về vấn đề I18N này cho cả java lẫn C#. Chúc vui!

  120. ngocba said

    thay oi cho em cai demo jsp ung dung javaFX nha thay …em cam on thay

  121. khanh phong said

    thầy ơi cho em hỏi làm cách nào để đưa text trong textfield vào trong table (java).

  122. khanh phong said

    thay cho em hoi muon truy xuat du lieu tu sql de dua vao trong table cua java thi lam sao??????

  123. Hung said

    bạn đang kết nối với database j vậy?

  124. Vũ Hồng Bảo Quốc said

    Cảm ơn thầy nhiều !

  125. thầy ơi thầy làm ơn post cho lớp em cái phần demo trên lớp từ năm tới giờ thầy nhé! Em cảm ơn thầy.

  126. nguyenlan said

    sao câu hỏi của e bị xoá mất tiêu rồi thầy ơi!

    e có vấn đề này mà làm mãi ko được thầy hướng dẫn e với : e muốn viết đoạn code để kiểm tra thông tin user nhập vào với cột đó được ràng buộc unique trong database.Yêu cầu code phải kiểm tra rồi thông báo cho user lỗi này để user nhập lại.

  127. OcTieu said

    Thầy cho em hỏi,e cần download bản eclipse nào vậy thầy????

  128. vovanhai said

    Eclipse J2EE

  129. Hung said

    Thầy cho e hỏi SWT và Swing khác nhau nhiều không vậy thầy? Hầu hết công ty làm về Swing hay SWT vậy thầy?

  130. nguyenlan said

    thầy ui sao ko giúp e câu hỏi trên vậy thầy!…sao nó cứ báo chờ xét duyệt là sao nhỉ?

  131. HIển said

    em chào thầy !
    em đang học kết nối JDBC bên HUFLIT
    thầy ơi , khi em cài sql server developer 2005 để kết nối java . sau vài ngày không kết nối bằng driver mocrosoft dc thì em chuyển qua dùng datasource .cũng không thành công.thê là em quay lại dung driver nhưng từ đây thi em k thể connect server trong sql dc nữa…(lúc trước thì vẫn ok) vì em không thể nào khởi động 2 dịch vụ : sql server , sql agent . dù đã cố gang start nhưng nó cứ báo lỗi : “th request fail or the service di not respond in a timelyfashtion. consult the event log or other applicable errors log for detail” . xin thầy chỉ em cách khắc phục ạ . em cảm ơn thầy.

  132. NewChicken said

    Em mới bắt đầu học Java , thấy rộng quá . Thầy định hướng cho em với nhé . Theo em thì bắt đầu từ GUI->I/O->Applet->JDBC->RMI/RJMB->JSP/Servlet->EJB ?Sao lắm thuật ngữ thế ko biết :(

  133. thầy cho em hoỉ:em muốn tạo 1 đồ án để chứng minh thẻ tỳ chỉnh.CustomTag nên chuyển đổi đầu ra các mã JAVA chứa trong nó thành ký tụ chữ hoa.
    Muốn 1 file TLD cho các từ khóa tùy chỉnh này cần phải làm như thế nào?

  134. vovanhai said

    Xem bài này

  135. vovanhai said

    Học OOP trước đi.

  136. vovanhai said

    Tắt cổng 8080 đi là xong chứ gì

  137. vovanhai said

    Chắc là cách nhanh nhất là gỡ nó ra, cài lại. Còn để sửa thì tôi phải dòm nó mới biết cách sửa. Chúc vui!

  138. minh trí said

    chào thầy và tất cả có ai code javafx mobile cơ bản thôi cho mình được không mình đang rất cần.có thể gửi qua mail la:minhtribayern.it@gmail.com.thank.

  139. minh trí said

    cho em hỏi thêm cách cài javafx trên netbean thì lam sao.netbean của em chỉ có java thôi.

  140. Hung Nguyen said

    Mình có cái rắc rối như sau,

    1. Một java-web application chạy trên Tomcat6 có folder chứa các propertise files là $ABC_Project\webroot\WEB-INF\classes\properties

    2. Các propertise files đó sẽ được load một cách tự động khi Tomcat khởi động.

    3. Sau đó các java classes trong web application có thể sử dụng resource trong các propertise files một cách dễ dàng bằng câu lệnh: ResourceBundle dbProps = ResourceBundle.getBundle( name); với name là tên được chỉ định cụ thể.

    Mọi thứ như thế là tốt đẹp.

    Và bi giờ mình muốn viết một java class trong đó có hàm main(). Và chạy class này trên NetBean or Eclipse (bằng cách run as). Mình trích ngắn đoạn code như sau:

    public static void main(String[] args)
    {
    ResourceBundle dbProps = ResourceBundle.getBundle( “ABC_Name”);
    String projectName = dbProps.getString( “projectName”);
    }

    Kết quả: là đối đượng dbProps luôn luôn null.
    Vậy mình đang thiếu cái gì?
    Mong đợi của mình là chạy được 2 câu lệnh ở trong main() đó. Xin trợ giúp. Cảm ơn nhiều

  141. vovanhai said

    Trong eclipse hay netbean bạn phải lưu các file properties theo project chứ bạn để trong Tomcat làm sao nó load được!

  142. vovanhai said

    Tải bản đầy đủ là có. Còn không bạn vào Plugin và install nó!

  143. Thầy có thể cung cấp thông tin và demo ứng dụng web bằng Công Nghệ Liferay Portal trên nền J2EE. ở ngoài Em mới đụng thực tế rất ít ỏi và cũng hiểu sơ sơ về nó nhưng chưa hiểu lắm mong Thầy Help me dùm.

  144. Hung Nguyen said

    hi Thầy, các properites files đặt trong project $ABC_Project đó chứ, nhưng không hiểu sao với những câu lệnh liên quan resource đặt trong main() của một java class thì nó không hiểu đường dẫn đến các propertie files đó. Mình đang rất cố gắng tìm cách, nhưng vẫn chưa thấy.

  145. Hung Nguyen said

    Hi Thầy, để mình nói thêm ý này.

    Thay vì bước thứ 2 thực hiện [2. Các propertise files đó sẽ được load một cách tự động khi Tomcat khởi động.] thì mình cần load các properties files đó bằng java coding mà không cần sự can thiệp của Tomcat.

    Mong đợi nó load chỉ một lần, rồi sau đó trong bất ký lớp java (với bất kỳ kiểu quan hệ nào trong class diagram) nào khác đều có thể sử dụng đươc 2 câu lệnh:
    ResourceBundle dbProps = ResourceBundle.getBundle( “ABC_Name”);
    String projectName = dbProps.getString( “projectName”);

    Cảm ơn sự hổ trợ.

  146. torotoan said

    thua thay, em dang su dung junit de test java va em dung phan mem eclip, thay co tai lieu nao de huong dan su dung phan mem va cach test thi cho em xin, em chan thanh cam on.

  147. dcIT said

    Em chào thầy! Chào các bạn

    Em không hiểu sao dạo này Netbeans 6.1 của em bị lỗi không biuld đc tất cả các project….

    Đây là lỗi : C:\Documents and Settings\kieuthang\Desktop\Quanlysach\nbproject\build-impl.xml:39: Syntax error in property: ${nbplatform.default.netbeans.dest.d

    Mong được thầy và các bạn giúp đỡ khắc phục lỗi này!
    Em xin chân thành cảm ơn…..

  148. vovanhai said

    Em clean, close hết các project đi. chạy update netbeans (trong menu help) rồi mở lại project.

  149. minhtrit said

    xin chào thầy.Em muốn học javafx mà chưa biết bất đầu từ đâu.tài liệu tiếng việt hình như là không có lên em muốn hỏi thầy có thể cho em xin một số tài liệu về nó được không ạ.em cám ơn

  150. vovanhai said

    javafx chỉ có tài liệu tiếng Anh thôi. Bạn chịu khó đi. Sách kỹ thuật nên đọc bản tiếng Anh. Chúc vui!

  151. minhtrit said

    cám ơn thầy ạ.Do em tự tìm tòi và tự học vì em có hứng thú với nó nên em cũng mong thầy chỉ bảo thêm.Chúc thầy vui ạ.

  152. thinkingEveyThings said

    thầy ơi! Em đang gặp rắ rối về cái richface dùng DragAndDrop, thầy có thể demo cho em 1 bài đơn giản được không ạ? Em cảm ơn thầy nhiều…

  153. tranduyth said

    Thầy Hải ơi! em đang viết chương trình Quản lý nhân sự trong Java, phần load database của em sao load không được, Thầy giúp gửi cho em 1 ví dụ đầy đủ Load database len JTable, em cám ơn thầy nhiều mong thầy giúp em

  154. Bùi Khánh said

    thầy cho em hỏi em load dữ liệu từ 1 column trong database lên combobox thì không hiểu sao dữ liệu bị nằm trong dấu ngoặc vuông []. như vầy [HS1] em dùng resultset đúng cách mà không hiểu sao nữa? mong thầy chỉ dùm em.

  155. vovanhai said

    Trong lớp đặc tả đối tượng dữ liệu, em override lại phương thức toString.

  156. minhtrit said

    thầy ơi.cho em hỏi sao em chạy chương trình javafx mà sao theo hướng dẫn thì phải được nhưng lại không như vậy.khi em chyạ nó nó có chạy nhưng chỉ chyạ ra cái cửa sổ rồi có chữ Application content ở trong cửa sổ đó hic em không biết sao nữa.thầy cho em hỏi tại sao lại bị như vậy.cách để khắc phục như thế nào em cám ơn thầy ạ.

  157. minhtrit said

    các bạn nào biết giúp minh nha mình tự học lên rất rối.cám ơn các bạn

  158. minhtrit said

    hjjjjjjjjj.em chạy dược rùi thầy ơi không sao nữa vạn sự khởi đầu nan mà hjjjj.có gì không biết em hỏi thầy nữa

  159. Đạt said

    Thầy cho e hỏi. Em có 1 bài làm về download file bằng rmi.
    Có 1 textarea hiện tất cả file cố thể download trong thư mục VD: E:\\Java
    ấn vào 1 file rùi click button download nó down file ý về client.
    Mong thầy giúp đỡ

  160. Thanh Quoc said

    Em chào thầy ,thầy cho em hỏi về cách xuất report từ file jasper ,lay hoay mãi mà em làm không ra .Mong thầy hướng dẫn dùm .Cảm ơn thầy nhiều ạ .

  161. minhtrit said

    thầy ơi.Giờ em muốn tham khảo một số code game mobile viết bằng javafx thì kiếm ở đâu ạ.trên java sun,và javafx,mà chỉ có viết scipt mà không thấy có viết game mobile thầy có thể cho em một địa chỉ trang web cụ thể được không ạ.

  162. Hungnn said

    Các pro cho mình hỏi: trong java có thể lấy số serial HDD, serial Bios, serial CPU đc ko?

  163. CuongNV said

    Em chào thầy!
    em mới học bắt đầu học JBE học kỳ 1 ạ..nhưng bắt đầu hơi khó khăn 1 số em không hiểu mấy…thầy có thể cho em vài lời khuyên khi học môn này không ạ..Và thầy có thể cho em 1 số tài liệu đọc thêm về JBE không ạ..Mong thầy giúp đỡ em…Em cảm ơn thầy nhiều.

  164. Hunglq7 said

    Để xuất ra report dùng jasper cũng k khó lắm, ban gởi mail cho mình đi mình chỉ cho. Mail của mình là “hunglq7@fpt.com.vn”

  165. Thầy ơi thầy cho em xin thầy cái code nhúng hay là cách nhúng cái template trong jsp với Thầy nhé! Em cám ơn Thầy.

  166. Dương Anh Huy said

    Em làm chức năng search trong java nhưng khi nhập ký tự ‘ thì câu lệnh Select của SQL luôn bị ngắt. Em đã thử nhiều cách: replace string, sproc, prepareStatement nhưng ko được? THầy cho em biết cách giải quyết được không ạ

  167. Thang Hao said

    chào thầy!
    Em đang học môn java và thử làm một project thì gặp phải 1 vấn đề nhờ thầy giúp em.
    Em dùng CSDL SQL Server để kiểu nvarchar và đánh tiếng việt. Khi em truy xuất trong chương trình java của em thì không hiển thị được.
    Em viết như sau:
    Trong sql : Name nvarchar(20); insert into khanhhang values(N’Thủy’)
    Trong java :
    Choice ch = new Choice();

    ch.addItem(rs.getString(“Name”));
    Khi chạy chương trình thì nó không hiển thị được font tiếng việt.
    Mong thầy giúp đỡ. Cám ơn thầy !

  168. Pham Quang Phuc said

    Chao thay em dang tim hieu ve lap trinh tren di dong. Theo Thay thi truoc tien muon hoc lap tronh tren di dong bang java thi em nen hoc truoc gi de co them tim hieu mot cach co hieu qua ah. Em cam on Thay

  169. nguyenhai said

    em đang làm project ..Thầy cho em hỏi muốn set màu cho 1 đoạn text trong 1 TextArea thì dùng lệnh gì ?
    mong thầy trả lời sớm..
    cám ơn thầy !!

  170. VoDanh said

    em muốn học tốt Java thì phải chuẩn bị những gì và phải học như thế nào hả Thầy ???

  171. Quang Huy said

    thầy có thể nào chỉ em cách load dữ liệu từ 1 file XML ra jTable đc không

  172. phonglantim said

    E chào thầy,

    Em muốn viết một ứng dụng web để thực hiện việc tự động hẹn giờ để gởi email đến cho khách hàng, cứ 5h sáng là tự động email được gởi đi. Thây có thể hướng dẫn giúp em được không?

  173. phanthanh said

    chi cho e cách load report lên khi chạy phần mềm

  174. Võ Văn Hải said

    Dùng EJB3 có chức năng đó. Em search trong phần seminar J2EE6 có nói đến việc này!

  175. Võ Văn Hải said

    Có trong bài viết rồi. tìm chút đi nhé!

  176. Võ Văn Hải said

    Khó trả lời. Cả 1 quá trình đấy. Tuy nhiên, bạn có thể bắt đầu với sự siêng năng và niềm đam mê!

  177. TrangDai said

    thầy ơi, em làm bt là một chương trình Zip như winZip.
    em đọc corejava nhưng ko hiểu lắm.
    thầy có thể hướng dẫn em một chút ko ah?
    cảm ơn thầy

  178. kat said

    Hi anh Hải!
    E đang làm 1 btap về giỏ hàng, bằng jsp và servlet. Nhưng khi build file jsp toàn bị lỗi sau, anh có thể giúp e tìm lỗi được không ak:
    Incrementally deploying http://localhost:8084/abcTest_XoaCungDuoc
    Completed incremental distribution of http://localhost:8084/abcTest_XoaCungDuoc
    Incrementally redeploying http://localhost:8084/abcTest_XoaCungDuoc
    Start is in progress…
    start?path=/abcTest_XoaCungDuoc
    FAIL – Application at context path /abcTest_XoaCungDuoc could not be started
    C:\Users\Nhung\Documents\NetBeansProjects\abcTest_XoaCungDuoc\nbproject\build-impl.xml:577: The module has not been deployed.
    BUILD FAILED (total time: 2 seconds)
    —-> lý do xảy ra lỗi như thế này là gì ạk? và cách giải quyết như thế nào??
    thanks anh !!

  179. Võ Văn Hải said

    Clean project đi. Nếu cấn thiết trong thư mục Webapps của tomcat, xóa cái thư mục project của bạn đi rồi deploy lại.

  180. pham duc phung said

    Thầy ơi! cho em hỏi làm thế nào để đưa tiếng việt vào trong java ạ!khi chạy thì font chữ hiện ra tiếng việt hả thầy?Mong thầy giúp dùm em a!em cảm ơn thầy!

  181. Kun said

    thầy có thể viết bài về hướng dẫn về J2ME đc không, trong này không thấy bài nào

  182. Mr Hung said

    xin hỏi các pro, mình muốn làm phần mềm gọi điện thoại bằng máy tính như sau: mình cắm điện thoại vào máy tính, nhập số điện thoại cần gọi trên giao diện phần mềm và thực hiện cuộc gọi bằng phone máy tính. mình chưa biết trong java có method nào hỗ trợ việc này ko?

  183. Võ Văn Hải said

    FOnt trên GUI thì OK(chỉ cần dùng Font unicode), chứ bạn hỏi Font trên CMD thì pó tay. Thử với Eclipse thì được.

  184. lehang said

    thầy ơi cho em hoi lenh nào dùng để copy trong java hả thầy

  185. Aprotrain said

    Thầy sửa lỗi hộ em cái này với

    try {
    // TODO code application logic here

    JdbcRowSet jrs = new JdbcRowSetImpl();
    jrs.setType(ResultSet.TYPE_SCROLL_INSENSITIVE);
    jrs.setConcurrency(ResultSet.CONCUR_READ_ONLY);
    jrs.setUrl("jdbc:sqlserver://localhost:1433;databaseName=MayAnh;");
    jrs.setUsername("sa");
    jrs.setPassword("1234567");
    jrs.setCommand("Select * from Admins");
    jrs.execute();
    } catch (SQLException ex) {
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }

    Nó cứ báo lỗi “The cursor type/concurrency combination is not supported.”

  186. Võ Văn Hải said

    READ_ONLY dùng với forward INSENSITIVE không được.

  187. Võ Văn Hải said

    READ_ONLY dùng với INSENSITIVE không được. Bạn sửa thành FORWARD_ONLY đi.

  188. Võ Văn Hải said

    Copy gì? Nếu là copy File thì: File.Copy(src,dest).

  189. Cao Quyết Chí NIIT said

    Thầy ơi ! E đang mắc 1 vấn đề trong project e đang làm. E code ko thấy lỗi gì mà vẫn ko thể chạy được. Em ko biết là sai và cẩn sửa chỗ nào để có thể chạy được> Thầy có thể giúp em với được ko ạ ! Có gì thầy có thể reply vào mail cho e theo địa chỉ thienduongngoisao@gmail.com hoặc YH : quyetchi_niit. E xin cảm ơn thầy !

  190. Tuan said

    Thầy có thể hường e làm cái ừng này giúp e ko ?? Sao e làm mà ko tùy chọn file hình được . Dùng link truc tiep thì nó tự upload ko chọn hình khác dc .
    Tạo ứng dụng Web minh họa:
    Upload file hình để lưu vào database.
    Lấy hình từ database đặt lên trang Web.

  191. Võ Văn Hải said

    Cách lưu/đọc hình ảnh với jdbc bạn tham khảo ở đây. còn file upload/download chắc bạn làm được

  192. Hoang said

    Thầy có thể nói cho em hiểu về stub trong RMI được ko ạ? Trong demo em thấy họ nói là phải make stub nữa “rmic demo.DemoRmiServer”; nhưng mà khi em test, thì dù chạy hay ko chạy thì chương trình đều hoạt động ok. Mong thầy giúp đỡ.

  193. Võ Văn Hải said

    Trong quá trình triệu gọi dịch vụ từ xa, em cần phải biết cấu trúc của phương thức, tham số, kiểu trả về,… stub chính là thành phần chứa các thông tin này.

  194. Hoang said

    Vậy thực sự có cần tạo file để tạo stub ko ạ, hay phải tạo khi nào?
    Vì với bài code của em, như em đã nói, dù có hay không tạo file bat make stub thì khi chạy clien + server chương trình đều hoạt động như nhau.

  195. Le Cong said

    E chào thầy ạ . thầy ơi e đang làm một project về j2me . E muốn sử dụng giao diện LWUIT nhưng khi e viết code trên Eclipse thi lại không hỗ trợ các thư viện của LWUIT tức là nó không tụ sinh mã ý ạ nên e gặp rất nhiều khó khăn. Thầy có thể cho e biết muốn sử dụng LWUIT thì làm thế nào ạ .
    E chân thành cảm ơn thầy .

  196. Võ Văn Hải said

    Cái này tôi chưa thử. Bạn nào đã làm thì xin giúp 1 tay. Thanks!

  197. Ngô Quốc Hùng said

    Thầy ơi. Cho em hỏi là khi em dùng netbean tạo 1 project trong project em co viết 1 chương trình GUI cho phép thay đổi hình bằng cách click button, em chạy trực tiếp trong netbean thì có thể hiển thị hình và hình thay đổi được, còn khi tạo file .jar bằng cách chọn RUN>Clean and Build project, sau đó chạy file .jar trong thư mục dist thì nó lại không hiển thị hình và không thay đổi hình được?

  198. Võ Văn Hải said

    Khi em đóng gói file jar thì có bao gồm thư mục hình hay không? hay em dùng địa chỉ tuyệt đối. Vấn đề là khi em đóng gói, phải xem là tài nguyên có trong gói jar không? Nếu em copy theo thư mục hình ảnh thì đơn giản nhưng không hay, còn nếu em đóng gói luôn hình ảnh thì em phải biết cách tuy xuất các file hình trong file jar(thực ra là file nén).

  199. hau said

    Thầy cho em hỏi cách export và import từ java ra file word, excel va ngược lại. Em cám ơn thầy,

  200. Le Duong said

    Thầy ơi em xin lỗi vì sơ xuất em làm mất trang web mà em hỏi Thầy rùi! Em tìm mãi mà ko thấy trang đó. Nên Thầy à Thầy gửi bài sửa dùm em vào nick em mail của Em le_duong_hy@yahoo.com hoặc trang này dùm Em Thầy nhé!Cảm ơn Thầy ạ!

  201. Huu Huu said

    Thầy ơi, giúp em cách lấy session trong jsf với!

    em có package vn.bean;
    file java là TaiKhoanBean.java trong đó có biến là tendangnhap
    em lấy biến với bean là #{taikhoanBean.tendangnhap}
    em đã lưu vào session biến này rồi
    giờ ở một file java khác tên là DangBaiViet.java , thầy chỉ em cách lấy biến tendangnhap này từ session để em xử lý ở file Dangbaiviet.java này với?
    Em cám ơn thầy!

  202. Võ Văn Hải said

    Code lấy tất cả HttpSession nè:

    FacesContext facesContext = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
    Enumeration e = session.getAttributeNames();
    while (e.hasMoreElements()){
    String attr = (String)e.nextElement();
    System.err.println(" attr = "+ attr);
    Object value = session.getValue(attr);
    System.err.println(" value = "+ value);
    }

    Hoặc:

    FacesContext facesContext = FacesContext.getCurrentInstance();
    Application app = facesContext.getApplication();
    MyObject myObject = (MyObject)app.createValueBinding("#{myObject}").
    getValue(facesContext);

  203. Huu Huu said

    Cám ơn thầy! Em dựa vào cách thứ 2 làm đã get được session rồi
    FacesContext facesContext = FacesContext.getCurrentInstance();
    Application app = facesContext.getApplication();
    Object myObject = app.createValueBinding(“#{taikhoanBean.tendangnhap}”).getValue(facesContext);

    System.out.println(“myObject:” + myObject.toString());

    nhưng không hiểu sao hàm “createValueBinding” lại có đường gạch ngang ở giữa???

    còn cách thứ nhất em lại không tìm thư viện HttpSession để import là sao vậy thầy?

  204. Võ Văn Hải said

    cái đó là deprecate(khuyên không nên dùng) mà dùng hàm khác.

  205. Huu Huu said

    Vâng! Em cám ơn thầy!

  206. Huu Huu said

    Em vừa tìm được cách fix lỗi deprecate :)

    FacesContext fctx = FacesContext.getCurrentInstance();
    ELContext elctx = fctx.getELContext();
    Application jsfApp = fctx.getApplication();
    ExpressionFactory exprFactory = jsfApp.getExpressionFactory();
    ValueExpression vExpr = exprFactory.createValueExpression(elctx, “#{taikhoanBean.ma_tk}”, Object.class);
    ma_tk = Integer.parseInt(vExpr.getValue(elctx).toString());
    System.out.println(“get matk:” + ma_tk);

  207. nguyễn dương chi said

    em chào thầy! thầy cho em hỏi 1 số vấn đề này thầy giúp em nha!
    em muốn tìm hiểu lớp ResultSetMetaData và Store Procedure nhưng em không có kiến thức về mấy cái này cho lắm thầy có thể:
    _ Giới thiệu về ResultSetMetaData và cách sử dụng ResultSetMetaData
    _trình bày khái niệm và cách sử dụng Store Procedure
    _cho 1 vài vd về tất cả vấn đề ở trên để tụi em có thể hiểu rõ hơn nhe thầy
    em cảm ơn thầy nhiều mong hồi âm của thầy

  208. Võ Văn Hải said

    Tìm trong blog này đã có cả 2 vấn đề bạn cần!

  209. Quang Dung said

    Dạ thưa thầy chúng em đang làm đoạn slide báo cáo về JSP Custom Tag trong Java. Vậy thầy có thể giúp chúng em về vấn đề này được không thầy.

  210. Trong said

    /*ANH COI CÓ THỂ SỬA JUP EM BÀI NAY NHA*/

    ->EM CẢM ƠN NHIỀU(*~*)

    //—————————————————————————//
    public class Param1 {
    public static void main(String[] args){
    System.out.println(“\nTesting tripleSalary”);
    Employee harry = new Employee(“Harry”,50000);
    System.out.println(“Before: salary=”+ harry.getSalary());
    tripleSalary(harry);
    System.out.println(“After: salary=” + harry.getSalary());
    System.out.println(“\nTesting swap:”);
    Employee a = new Employee(“Alice”,70000);
    Employee b = new Employee(“Bob”,60000);
    System.out.println(“Before:a=” +a.getName());
    System.out.println(“Before: b=”+ b.getName());
    swap(a,b);
    System.out.println(“After: a=” +a.getName());
    System.out.println(“After: b=”+ b.getName());
    }
    public static void tripleSalary(Employee x)
    {
    // x.raiseSalary(200);
    System.out.println(“End of method:salary=” + x.getSalary());
    }
    public static void swap(Employee x,Employee y){
    Employee temp=x;
    x=y;
    y=temp;
    System.out.println(“End of method: x=”+ x.getName());
    System.out.println(“End of method: y=”+ y.getName());

    }
    }
    class Employee
    {
    public Employee(String n,double s){
    name = n;
    salary =s;
    }
    public String getName(){
    return name;
    }
    public double getSalary(){
    return salary;
    }
    public void raiSalary(double byPercent)
    {
    double raise = salary * byPercent/100;
    salary +=raise;
    }
    private String name;
    private double salary;
    }

  211. Trung Dũng said

    Em chào thầy và các bạn.
    Em đang định làm 1 cái dự án nhỏ là Dùng Socket.

    chương trình xem điểm thi theo mô hình Client – Server…

    em muốn đc tham khảo ý kiến của thầy và các bạn.
    mong thầy chỉ cho em cái hướng đi…
    em cảm ơn.!

  212. Minh Thi said

    Thầy cho em hỏi có thư viện nào thiết kế chương trình Java đẹp như là gói DotNetBar cho C# không vậy?

  213. Võ Văn Hải said

    Chưa dùng nên không biết bạn ạ.

  214. Võ Văn Hải said

    Nếu chọn lựa thì dùng web application thay vì viết socket. còn nếu bắt buộc thì phải viết thôi. Hướng đi thì dùng Object Serialize rồi gửi object qua socket là xong.

  215. Võ Văn Hải said

    Java chỉ có pass-by-value. Xme thêm tại http://javadude.com/articles/passbyvalue.htm.
    Để pass-by-ref, bạn có thể làm lại như sau:
    Lớp Employee

    public class Employee
    {
    	public Employee(String n,double s){
    		setName(n);
    		setSalary(s);
    	}
    	public String getName(){
    		return name;
    	}
    	public double getSalary(){
    		return salary;
    	}
    	public void raiSalary(double byPercent)
    	{
    		double raise = getSalary() * byPercent/100;
    		setSalary(getSalary() + raise);
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public void setSalary(double salary) {
    		this.salary = salary;
    	}
    	private String name;
    	private double salary;
    }
    

    Lớp Param1

    public class Param1 {
    	public static void main(String[] args){
    		Param1 p=new Param1();
    		System.out.println("\nTesting tripleSalary");
    		Employee harry = new Employee("Harry",50000);
    		System.out.println("Before: salary="+ harry.getSalary());
    		p.tripleSalary(harry);
    		System.out.println("After: salary=" + harry.getSalary());
    		System.out.println("\nTesting swap:");
    		Employee a = new Employee("Alice",70000);
    		Employee b = new Employee("Bob",60000);
    		System.out.println("Before:a=" +a.getName());
    		System.out.println("Before: b="+ b.getName());
    		p.swap(a, b);
    		System.out.println("After: a=" +a.getName());
    		System.out.println("After: b="+ b.getName());
    	}
    	public void tripleSalary(Employee x)
    	{
    		// x.raiseSalary(200);
    		System.out.println("End of method:salary=" + x.getSalary());
    	}
    	
    	public void swap(Employee x,Employee y){
    		String n=x.getName();
    		double s=x.getSalary();
    		
    		x.setName(y.getName());
    		x.setSalary(y.getSalary());
    		y.setName(n);
    		y.setSalary(s);
    		
    		System.out.println("End of method: x="+ x.getName());
    		System.out.println("End of method: y="+ y.getName());
    
    	}
    }
    
  216. nguyễn văn Minh said

    em chào thầy. em đang viết một ứng dụng giữa java và orcalse, em muốn tăng tốc độ và an toàn cho nó nên em muốn dùng store procedure hoặc nhúng code java vào trong oracle chứ không phải chọc thẳng vào CSDL từ code java như bây giờ.Em băn khoăn không biết sotre procedure và việc nhúng code java vào thì cái này tốt hơn?Theo em hiểu cơ chế h/d của chúng như sau thầy xem hộ em có đúng không ạ:
    store : tạo store trong oracle, gọi store từ code ứng dụng java
    nhúng code java : tạo class java, nhúng vào oracle,publish lại và tạo package để dùng?
    em chưa hiểu hoạt động của việc gọi sau khi nhúng code java vào oracle lắm ?

  217. PhamVanSy said

    Em chào thầy ! Thầy ơi em đang học lập trình java. thày có thể giúp em tạo một thanh menu dùng Sax đọc file xml được không ah. Thầy có thể cho em xin code và cách sử dụng Sax được không ah. thầy có thể chỉ em cách tạo cây thư mục bằng sax, đọc, xoá, thêm dữ liệu trong file XML không ah. Nếu được Thầy có thể gửi qua mail cho em được không ah. em cảm ơn thầy nhiều, chúc thầy mạnh khoẻ và công tác tôt

  218. Võ Văn Hải said

    Rõ ràng việc embed code vào sẽ tạo 1 hiệu quả rõ rệt về độ an toàn và hiệu suất. Tuy nhiên đòi hỏi bạn phải tư duy nhiều và phải có chiến lược tốt.

  219. khanh said

    Thầy ơi!!!!
    Thầy giúp em đoạn code về dọc ghi file, tìm kiếm và hiển thị trong java được không ?

  220. nguyễn văn Minh said

    em đã sửa được lỗi của mình, vấn đề là do server bị lỗi.Trở lại việc nhúng code java vào oracle,em xin đưa ra 1 vd nếu thực hiện một ứng dụng truy xuất vào tài khoản của một ngân hàng, việc dùng function hay store hiển nhiên sẽ tốt.Vậy nếu nhúng các class java khi này vào thì lợi ích sẽ thế nào so với việc sử dụng store???

  221. lakemen said

    Anh Hải !!
    Em đang lựa chọn đi bên lĩnh vực testing về . Đặt biệt là testing trên ngôn ngữ java. Nhưng em chỉ mới bắt đầu tìm hiểu về java . Vậy theo anh em nên học những j về nó lúc này. (Thời gian chỉ 3 tháng) . Cám ơn anh nhiu nhiu!!

  222. Võ Văn Hải said

    Kỹ thuật Software Testing rất rộng lớn, bạn đang quan tâm đến Unit Test hay…. Nếu bạn quan tâm UnitTest thì bạn thường phải là lập tình viên. Trên Java có JUnit Test, bạn coi cái đó trước.

  223. Võ Văn Hải said

    Đã có trên blog này rồi. CHịu khó search.

  224. Võ Văn Hải said

    SAX đọc file xử lý XML thì được chứ làm gì có chuyện xóa, thoát. SAX chỉ là read-only thôi. Muốn có các thao tác CRUD phải dùng DOM.
    Ví dụ sau đọc file XML và hiển thị lên màn hình

    package sax;
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
    import com.sun.org.apache.xerces.internal.parsers.SAXParser;
    
    public class DisplayContent extends DefaultHandler{
    	public static void main(String[] args) {
    		try {
    			DisplayContent hdl=new DisplayContent();
    			SAXParser parser=new SAXParser();
    			parser.setContentHandler(hdl);
    			parser.setErrorHandler(hdl);
    			parser.parse("xmlfiles/cdcatalog_ex3.xml");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	@Override
    	public void endDocument() throws SAXException {
    		System.out.println("Parse completed..");
    	}
    	@Override
    	public void startDocument() throws SAXException {
    		System.out.println("Start parsing...");
    	}
    	@Override
    	public void characters(char[] ch, int start, int length)
    			throws SAXException {
    		super.characters(ch, start, length);
    		String st=new String(ch,start,length).trim();
    		System.out.println(st);
    	}
    	@Override
    	public void endElement(String uri, String localName, String name)
    			throws SAXException {
    		super.endElement(uri, localName, name);
    		System.out.print("</"+name+">");
    	}
    	@Override
    	public void startElement(String uri, String localName, String name,
    			Attributes attributes) throws SAXException {
    		super.startElement(uri, localName, name, attributes);
    		System.out.println("<"+name+">");
    	}
    }
    
  225. cường said

    thầy ơi! cho em hỏi :viết code như thế nào để khi nhập kích thước vào ô JTextField thì thay đổi kích thước chữ ở ô JLable vậy thưa thầy?

  226. Võ Văn Hải said

    Giả sử JTextField có tên tfSize, JLabel có tên lbDisplay. Code như sau:

    tfSize.addKeyListener(new KeyAdapter() {
    			@Override
    			public void keyTyped(KeyEvent e) {
    				int size=Integer.parseInt(tfSize.getText());
    				Font font=new Font(lbDisplay.getFont().getName(),
    						lbDisplay.getFont().getStyle(),size);
    				lbDisplay.setFont(font);
    			}
    		});
    
  227. cường said

    em chào thầy!!
    em viết mà vẫn không gọi được hàm KeyType xin thầy giúp em.
    import javax.swing.*;
    public class bai111{
    public static void main (String[] args) {
    JFrame styleFrame=new JFrame(“Style Option”);
    styleFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    StyleGUI gui=new StyleGUI();
    styleFrame.getContentPane().add(gui.getPanel());
    styleFrame.pack();
    styleFrame.show();
    }
    }
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class StyleGUI implements KeyListener{
    private final int WIDTH=300,HEIGHT=100,FONT_SIZE=36;
    private JLabel saying;
    private JCheckBox bold,italic;
    private JLabel lb;
    private JTextField txt;
    private JPanel primary;
    public StyleGUI(){
    saying=new JLabel(“Say it with style!”);
    saying.setFont(new Font(“Helvetica”,Font.PLAIN,FONT_SIZE));
    bold=new JCheckBox(“Bold”);
    bold.setBackground(Color.cyan);
    italic=new JCheckBox(“Italic”);
    italic.setBackground(Color.cyan);
    lb=new JLabel(“Nhap kich thuoc:”);
    txt=new JTextField(5);

    StyleListener listener=new StyleListener();
    bold.addItemListener(listener);
    italic.addItemListener(listener);
    txt.addKeyListener(this);

    primary=new JPanel();
    primary.add(saying);

    Box b=Box.createHorizontalBox();
    b.add(bold);
    b.add(italic);
    b.add(Box.createHorizontalStrut(10));
    b.add(lb);
    b.add(txt);

    primary.add(b);
    primary.setBackground(Color.cyan);
    primary.setPreferredSize(new Dimension(WIDTH,HEIGHT));

    }
    public JPanel getPanel(){
    return primary;
    }
    private class StyleListener implements ItemListener{
    public void itemStateChanged(ItemEvent event)
    {
    int style=Font.PLAIN;
    if(bold.isSelected())
    style=Font.BOLD;
    if(italic.isSelected())
    style+=Font.ITALIC;
    saying.setFont(new Font(“Helvetica”,style,FONT_SIZE));
    }
    }
    public void keyTyped(KeyEvent e) {
    int size=Integer.parseInt(txt.getText());
    Font font=new Font(lb.getFont().getName(),lb.getFont().getStyle(),size);
    lb.setFont(font);
    }
    }

  228. cường said

    thầy ơi! cho em hỏi thêm một bài nữa:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.event.*;
    public class bai153 extends JFrame implements ActionListener{
    private JButton btPre,btFir,btNext;
    private JList lst;
    private JLabel lb;
    public bai153(){
    super(“Panel Demo”);
    String[] Seclection={“Selection1″,”Selection2″,”Selection3″,
    “Selection4″,”Selection5″,”Selection6″,”Selection7″};
    lst=new JList(Seclection);
    lst.setVisibleRowCount(6);
    JScrollPane Jp=new JScrollPane(lst);
    JPanel p1=new JPanel(new FlowLayout(FlowLayout.CENTER));
    JPanel p2=new JPanel(new FlowLayout(FlowLayout.CENTER));
    JPanel p3=new JPanel(new FlowLayout(FlowLayout.CENTER));

    p1.add(lb=new JLabel(“Make a selection”));
    p2.setLayout(new GridLayout(1,1));
    p2.add(Jp);
    p3.add(btPre=new JButton(“<>”));

    Box b=Box.createVerticalBox();
    b.add(p1);
    b.add(p2);
    b.add(p3);

    JPanel p=new JPanel();
    p.add(b);
    add(p);

    btPre.addActionListener(this);
    btFir.addActionListener(this);
    btNext.addActionListener(this);

    pack();
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    public void actionPerformed(ActionEvent e){
    Object o=e.getSource();
    if(o.equals(btPre))
    {
    lst.setSelectedIndex(0);
    }else
    if(o.equals(btFir))
    {
    lst.setSelectedIndex(6);
    }
    }
    public static void main (String[] args) {
    new bai153();
    }
    }
    cho em hỏi làm sao để mình nhấn nút Next thì vệt sáng trên JList sẽ chuyển đến phần tử kế tiếp. em chỉ làm được nút Frist vệt sáng chạy về phần tử cuối cùng.Em cảm ơn thầy rất nhiều.

  229. Võ Văn Hải said

    Em đã cho cái lb của em lắng nghe đâu mà gọi.
    lb.addKeyListener(this);

  230. cường said

    dạ em cảm ơn thầy rất nhiều.

  231. pham minh tha said

    Chào thầy!
    Thầy cho em hỏi khi mình muốn xuất file.jar thành file.exe thì mình phải có file.jar dùng phần mềm để xuất thành file.exe. Em đã làm rồi em dùng phần mềm exe4j đã xuất thành công nhưng file xuất ra chạy không được vì nó không có cơ sở dữ liệu. thày giúp em với.
    em lập trình trên netbeans viết code swing.
    thầy trả lời qua gmail em nhe. thân chào thầy phamminhtha@gmail.com

    các bạn nào có vấn đề liên quan xin chỉ giáo

  232. Võ Văn Hải said

    Em dùng csdl gì? nếu là access thì phải copy theo, nếu là SQL, MySQL,…thì khỏi.

  233. Hứa Đặng Thị Huyền Trân said

    Chào Thầy.

    Em đang làm UI sử dụng JSF, Em muốn hỏi là mình có thể xây dựng tag riêng cho mình để sử dụng như các tag lib mà JSF đã support không thầy? Nếu được, thầy có thể demo hướng dẫn hoặc có tài liệu gì thầy share cho em với.
    Em cám ơn thầy nhiều.

    P/S: em không biết post ở đâu nên em đưa vào topic này.

  234. Võ Văn Hải said

    Trong JSF2, bạn viết các composite components được coi như 1 ctrl. Ngoài ra bạn có thể dùng richfaces để có sẵn 1 tập các components tích hợp ajax, cực hay và dễ.

  235. Duy Quang (Điện biên) said

    thầy ơi em không phải học sinh của thầy nhưng em vô tình ghé thăm blog của thầy em đọc được nhiều thứ nhưng chưa thấy phần mình mắc phải, em thiết kế giao diện dùng Swing em list CSDL Access lên list rồi nhưng nó không có cột, dữ liệu cứ nối đuôi nhau thầy có ví dụ nào không up lên cho em và các bạn học hỏi với ( Thầy giúp em nhé)

  236. Duy Quang (Điện biên) said

    Thầy ơi em không lưu được Jcombobox vào Access thầy cho em xem đoạn code này với

  237. Võ Văn Hải said

    Ví dụ cái JComboBox của em tên cbNV, ResultSet của em tên rs. Điền dữ liệu vào như sau:

    while(rs.next()){
         cbNV.addItem(rs.getString("tên_field_cần_fill"));
    }
    
  238. Thưa thầy, em đang phát triển một cổng điện tử từ framework Liferay portal; e đang có thắc mắc là làm sao để tích hợp được các portlet khác từ các cổng thông tin đang hoạt động trên internet để tích hợp chúng vào hệ thống của mình (dĩ nhiên những portlet này đã được xây dựng theo chuẩn SWRP ); như vậy liệu khi portal của em muốn tích hợp chúng vào thì có phải các portlet này sẽ được nhân bản? và chúng có sử dụng CSDL thì làm sao khi tích hợp chúng vào hệ thống của em chúng có thể truy xuất CSDL của chúng (vì theo em được biết, portlet khi truy xuất thì chúng không có địa chỉ thực)

  239. Thầy ơi! Nhờ thầy sửa dùm em code java này! huhuuh em sắp nộp rồi!

  240. Trịnh Minh Tú said

    Thưa thầy, vì trong blog không có mục cho j2me nên em xin phép được hỏi trong mục java này ạ. Em viết một ứng dụng nhắc việc cho điện thoại di động. ứng dụng của em có nhiều form, chẳng hạn form1 , form2, form3… Tất cả các form em đều viết riêng ra từng class, form1 em kế thừa từ lớp MIDlet. Nếu ẹm cho cả form2 và form3 cũng kế thừa lớp MIDlet thì khi RUN ứng dụng sẽ phát sinh một ngoại lệ là Midlet không được khởi tạo từ MIDlet gì đó. Em muốn từ form1 có thể thao tác nút Command để gọi đến form2 và từ form2 thao tác Command để gọi hiển thị Form3 lên màn hình. Nhưng ko cho kế thừa từ lớp MIDlet thì em ko gọi được hàm dis.setCurrent(form); được ạ. Mong thầy hướng dẫn cho em. Em cảm ơn thầy nhiều.

  241. Nguyễn Tuấn Vũ said

    thầy ơi thầy có thể dạy ngoài giờ về java học kỳ 4 cho em đc hem thầy vì em tính thi lại java nhưng em quên rùi thầy giúp em với!!!!!!!!!!!!

  242. TSon said

    Chao thay, em muon hoi ve socket trong java. Em da chay thu vi du room chat cua thay o day, nhung client chi ket noi voi server duoc tren cung mang lan ko ket noi qua internet duoc(da thay IP server ben file client.java). Em cung da thu 1 so source ve chat kahc tren mang nhung deu chi chay duoc trong mang lan. Xin thay huong dan lam sao de client ket noi duoc qua internet.Cam on thay

  243. Võ Văn Hải said

    Tôi không dạy ngoài giờ. Bạn có thể tự học và tôi có thể giúp bạn.

  244. TSon said

    Thay hoac ban nao biet giup em voi.

  245. Nhut Minh said

    Thưa thầy em đang tìm hiểu về mô hình Client- Server.Server đang phát một video và Client kết nối đến để lấy video về. Dạng như xem phim trực tuyến. Thầy có thể cho em một ví dụ cụ thể không ạ.
    Em cảm ơn thầy trước ạ!

  246. Tiendv0311 said

    Chào anh Hải, em hiện giờ đang theo học Java JFrame Form.Anh có thể cho em code Add,Edit,Delete và hiển thị dữ liệu trên txt mà mỗi khi click mouse vào table Student. Bài của em không liên quan gì đến SQL.
    Mà nó lấy thông tin của Student từ StudentList.xml. Hãy giúp em sớm sớm nha.Cảm ơn anh Hải nhiều.

  247. Võ Văn Hải said

    Xem thử ở đây xem sao: https://vovanhai.wordpress.com/xmlj/dung-dom-d%e1%bb%8dc-file-xml-bi%e1%bb%83u-bi%e1%bb%85n-tren-jtree/

  248. anpham said

    Thầy ơi cho em hỏi, làm sao để so sánh một biến int có null hay không? Em mới học môn này nên chưa biết gì cả. Mong thầy chỉ cho em.

  249. Võ Văn Hải said

    Biến kiểu int sao null được bạn. Lớp wrapper Integer là đối tượng mới xét null hay không. Biến int có giá trị mặc định là 0.

  250. KRB said

    Cho em hỏi, em làm jsp về phần database thì em nên làm Oracle hay SQl-Server. Em thấy SQL-Server có vẻ dễ hơn Oracle về phần dưới CSDL. Nhưng trên java thì cái nào dễ dùng hơn. Và phải dùng thư viện nào.

  251. phuoc said

    chào thầy
    em đang đi thực tập tại cty phần mềm .Họ đang dùng eclipse 3.1 để lập trình web aplication vấn đề em gặp phải khi dùng phiên bản eclipse 3.1 là không hổ trợ add server .thầy có thể hướng dẫn em cách add server cho phiên bản eclipse 3.1 này được không.Theo em biết thì eclipse 3.1 chi có 1 phiên bản duy nhất

  252. Võ Văn Hải said

    Ở VN người ta dùng MS SQL Server nhiều hơn. Cài đặt và sử dụng dễ hơn còn về mặt hiệu suất, khả năng,… thì Oracle tốt hơn. Code trên java như nhau, khác ở chỗ cái driver. Hỗ trợ java thì oracle hỗ trợ tốt hơn.
    Bạn thử dùng MySQL thử xem. Miễn phí.

  253. Võ Văn Hải said

    Em có thể thêm server trong Reperences->Server

  254. phuc said

    thưa thầy, cho em hỏi,
    làm sao để chuyển kiểu String trong java sang kiểu datetime trong Ms sql 2005,

  255. Duy Quang (Điện biên) said

    thưa thầy cái này
    1 while(rs.next()){

    2 cbNV.addItem(rs.getString(“tên_field_cần_fill”));

    3 }
    dùng để đưa csdl từ access lên combobox
    em muốn lưu giá trị trên combobox vào csdl
    thầy giúp em với

  256. Huynh Thi Diu said

    Em chào thầy Hải và các bạn!
    – Em mới làm quen Java, nên còn nhiều cái không hiểu mong mọi người giúp đỡ:(Em có các phần chưa rõ, search trên goodle, ma nhiều cái nói lung tung quá,mong thầy và các bạn chỉ giúp)
    + Nguyên tắc hoạt động JSP: cách tổ chức lớp và hai đối tượng đặc biệt Request, Response
    + Cú pháp JSP: chỉ rõ những điểm khác, và giống nhau so với Java desktop application
    + Công cụ xây dựng Ant (build tool Ant) để build một ứng dụng JSPs(Nên sử dụng Ant trong TH nào? Nếu không dùng có ảnh hưởng gi không? Ví dụ code minh hoa dùm em!)
    Em xin cám ơn!Thân

  257. Naruto said

    thầy ơi cho e xin đoạn code của Deposite của máy ATM. e đang làm đồ án về máy ATM . thầy có thể hướng dẫn cho e đc. ko. Cám ơn thầy nhiều ạ

  258. việt said

    Thầy ơi em gặp lỗi này khi tạo servlet :
    “httpservlet cannot be resolved to a type”
    Thầy giúp em fix với
    còn đây là servlet của em :
    package servlet;

    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    /**
    * Servlet implementation class Search
    */
    public class Search extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
    * Default constructor.
    */
    public Search() {
    // TODO Auto-generated constructor stub
    }

    /**
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    }

    /**
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    }

    }

  259. Duong Anh Minh said

    Chào thầy!
    Ex có xem bài RMI Calculator của thầy rồi, thầy cho em hỏi thêm là nếu như em muốn làm trên hai server: server 1 chỉ thực hiện cộng trừ server 2 thực hiện nhân chia thì phải làm cụ thể như thế nào. Em chào thầy!

  260. Châu Minh Tuấn said

    Chào thầy
    Em muốn làm 1 website với catalog tương tự như trang web: http://ecatalog.starrett.com/Default.aspx#. Em không biết nó sử dụng công nghệ gì, và tài liệu viết code của nó như thế nào
    Mong thầy giúp em

  261. fawkes said

    Thầy và các bạn cho mình hỏi giữa swing và control có gì khác nhau không. ví dụ như swing button và control button. Vì tự học nên có đôi chỗ không biết mong thầy và các bạn giúp đỡ

  262. Võ Văn Hải said

    Thì bạn viết 2 cái server, đăng ký nó bằng 2 cái trên trên rmiregistry sau đó thì lookup mà làm.

  263. Võ Văn Hải said

    Em có chắc 2 việc sau:
    1. Cấu hình server cho project nếu dùng IDE/hoặc set Classpath đến file servlet-api.jar nếu build bằng tay.
    2. Cấu hình trong web.xml servlet này chưa.

  264. Võ Văn Hải said

    Trang này viết bằng Flash mà.
    Em đang nói đến việc lật trang đấy à. Ngoài Flash em có thể dùng SilverLight hoặc JavaFX

  265. Huỳnh Thị Dịu said

    Em chào thầy Hải và các bạn!
    – Em mới làm quen Java, nên còn nhiều cái không hiểu mong mọi người giúp đỡ:(Em có các phần chưa rõ, search trên goodle, ma nhiều cái nói lung tung quá,mong thầy và các bạn chỉ giúp)
    + Nguyên tắc hoạt động JSP: cách tổ chức lớp và hai đối tượng đặc biệt Request, Response
    + Cú pháp JSP: chỉ rõ những điểm khác, và giống nhau so với Java desktop application
    + Công cụ xây dựng Ant (build tool Ant) để build một ứng dụng JSPs(Nên sử dụng Ant trong TH nào? Nếu không dùng có ảnh hưởng gi không? Ví dụ code minh hoa dùm em!)
    Em xin cám ơn!Thân

  266. kelvis said

    e chào thầy! E đang viết một ứng dụng Java, sử dụng SQL server 2005, e dùng Netbeans để lập trình. Nếu e chạy chương trình trong Netbeans thì dữ liệu load lên Jtable trong ứng dụng vẫn giữ được font tiếng Việt có dấu. E gặp một vấn đề là khi build ra file .jar rồi đóng gói lại thành .exe thì dữ liệu trên Jtable load từ cơ sở dữ liệu lên bị lỗi font tiếng Việt. E kiểm tra thì thấy trong file .jar dữ liệu trong Jtable cũng bị lỗi font. Em mong thầy và các bạn có thể giúp e khắc phục vấn đề này. E cảm ơn thầy!

  267. lechuong said

    em chào thầy! e đang có một bài tập nhưng e hk hiều rỏ ,em mong thầy giúp jum em..

    cho một ví dụ và hãy chỉ ra 8 khái niệm cơ bản trong ví dụ đó….
    .đối tượng
    .lớp đối tượng
    .trừu tượng hóa dữ liệu
    ………
    em cám ơn thầy.!!!!

  268. Võ Văn Hải said

    khi build, nếu code tay, bạn thêm tùy chọn “encoding UTF-8″ nhé.

  269. Võ Văn Hải said

    KHi biên dịch, thêm tùy chọn “-encoding UTF-8″

  270. kelvis said

    E cảm ơn thầy! Thưa thầy, e đang đóng gói 1 ứng dụng java, trong chương trình e có sử dụng file jasper để tạo báo cáo. Mặc dù e đã đưa các file jasper vào trong src nhưng khi buil ra file jar e vẫn không dùng được tính năng in báo cáo. E nghĩ là khi build ra file jar e vẫn chưa đưa được các file jasper vào. Vậy e phải làm thế nào ah?

  271. Võ Văn Hải said

    vào thư mục lib chứ bạn. còn không thì bạn thiết lập classpath cho nó.

  272. Duy Quang (Điện biên) said

    Em chào thầy, thầy giúp em muốn viết tiếng việt trên JCreator thì phải làm thế nào? giúp em với

  273. Võ Văn Hải said

    chỉ có cách dùng nodepad++ lưu dạng UTF8 rồi khi biên dịch kèm thêm cái tùy chọn -encoding UTF8 thôi.

  274. dandan said

    thầy ơi, lần đầu tiên em vào blogs của thầy, em cũng chưa đọc hết những gì mà các bạn đã hỏi.Nhưng em thấy những câu trả lời của thầy thường rất chung chung, nó chưa thực sự rõ ý và đáp ứng được những gì người hỏi mong muốn.Thầy có thể dành thời gian trả lời sâu hơn được không ạ.Và thầy cho em hỏi khi em coppy code từ chương trình này sang chương trình khác làm thế nào để khắc phục lỗi phần public ở đầu dòng không có dấu gạch nên nó báo lỗi rằng phải thêm dấu phẩy đầu dòng???

  275. NgoToi said

    Thầy ơi, bây h em đang học java cơ bản, nhưng e muốn tự học thêm về JSP, Servlet. Để làm nền tảng học tiếp Structs, Spring, Hibernate.
    Nhưng mà em chưa có biết 1 chút gì về JSP và Servlet hết, có thể thầy nói chi tiết về 2 cái đó giùm e được ko ạ. E cũng có search google nhưng trên đó mỗi người đều có quan điểm khác nhau, nên ko biết là nghe theo ai. Nên e lúng túng lắm, mong thầy giúp e.
    E cũng nghe nói dùng netbeans để làm JSP với Servlet nó tốt hơn đúng ko thầy ? Nhưng mà nó rất là nặng, e có thể dùng JCreator để làm JSP với Servlet thì vẫn tốt chứ thầy ? Mong thầy giải đáp hết các câu hỏi thắc mắc của e. Trân trọng cảm ơn thầy.

  276. Võ Văn Hải said

    Servlet là công nghệ dùng code java để sinh ra trang web động.
    JSP kết hợp soạn thảo bằng HTML và code với Java.
    Bạn có thể tham gia một khóa học nào đó rồi tiếp tục tự nghiên cứu sẽ nhanh hơn!

  277. Hiển said

    Chào thầy. Hiện nay em đang làm 1 phần mềm quản lý kho, muốn xây dựng biểu đồ để thống kê doanh thu trong ứng dụng nhưng ko biết phải dùng phần mềm nào. Thầy có thể giúp em đc ko ạ ?

  278. Võ Văn Hải said

    DÙng công cụ làm báo cáo nào đấy như Crystal Report hoặc BIRT. Chúc vui!

  279. NgoToi said

    Thanks thầy.

  280. lê hoàng đại said

    Thưa thầy em mún chơi game đuôi jar trên pc thì dùng giả lập Kemulator thì em bik rùi .Nhưng Giờ file đó h0k hỗ trợ nữa để mún play đc phải thay đổi client.Nhưng em h0k pik thầy có thể hướng dẫn em làm h0k?
    Link file http://wap.teamobi.com/detail.php?id=31 chọn đuôi jar nha thầy.Mong Thầy Giúp đỡ cảm ơn thầy

  281. Le Hoang Dai said

    Thưa thầy!Em cần nhờ thầy giúp 1 việc,là thay đổi slient của file jar để có thể giả lập trên pc đc .Link file :http://wap.teamobi.com/detail.php?id=31 file jar .Xin Thầy hướng dẫn em làm,em đang rất cần.Cảm ơn thầy

  282. Mr Triệu said

    Thầy cho em hỏi muốn định dạng tiền tệtheo kiểu : 10.000.000 thì phải làm thế nào ạ? Em dùng Locale(“vi”,”VN”) thì nó lại hiển thị 10.000.000,00đ

  283. Pham Thanh Nam said

    thưa thầy thầy cho em xin code Java gọi đến file PDF với a.

  284. Võ Văn Hải said

    EM thử dùm java.text.NumberFormat thử.

    NumberFormat nf = NumberFormat.getInstance();
    String result=nf.format(100000);
    
  285. trung said

    chào thầy !
    em có 1 bài tập về kết nối database và hiển thị lên jTable
    em đã kết nối dc và cũng đã lấy dữ liệu dc nhưng tại sao các record ko hiển thị lên cái table của mình
    code của em như sau:

    package business;
    import demo1.Connect;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Vector;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.table.DefaultTableModel;

    public class MainFrame extends javax.swing.JFrame {

    public MainFrame() {
    initComponents();

    }
    public void loadtable()throws Exception{
    Connection con;
    ResultSet rs;
    PreparedStatement pstm;
    DefaultTableModel model = new DefaultTableModel();
    jTable1.setModel(model);
    Connect cn = new Connect();
    Vector rowData;

    con = cn .getConnection();
    String sql =”select masv, hoten,nam,khoa from sinh_vien”;
    pstm = con.prepareStatement(sql);
    rs = pstm.executeQuery();
    if (rs!=null)while(rs.next()){
    rowData= new Vector();
    rowData.add(rs.getString(“masv”));
    rowData.add(rs.getString(“hoten”));
    System.out.println(rs.getString(“masv”));// đã load dc dữ liệu
    rowData.add(rs.getString(“nam”));
    rowData.add(rs.getString(“khoa”));
    model.addRow(rowData);
    }
    }
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {

    public void run() {
    try {
    MainFrame mf = new MainFrame();
    mf.loadtable();
    new MainFrame().setVisible(true);
    } catch (Exception ex) {
    Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
    });
    }
    // Variables declaration – do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration
    }
    mong thấy giúp dùm em

  286. Võ Văn Hải said

    Không hiểu code java gọi đến PDF là gì. Em muốn tạo file PDF hay là gọi 1 fiel PDF để chạy? Nếu là tạo file thì em có thể dùng thư viện iText để tạo hoặc dùng XSLT để transform. Còn nếu gọi để chạy thì như sau:

    public void ExecuteWithAssociatedProgram(String FilePath)
    {
    String commands=”cmd /c start “+ FilePath ;
    try
    {
    Runtime rt = Runtime.getRuntime();
    Process child = rt.exec(commands);
    }
    catch(Exception ioe){
    ioe.printStackTrace();
    }
    }

    Em có thể gọi chạy file bất kỳ bằng chương trình mặc định trong hệ thống.

  287. Pham Thanh Nam said

    Thưa thầy em có 1 file PDF bên ngoài rồi a.em đang làm đồ án bằng JAVA bên trong đồ án của em có 1 phần Help khi click chuột vào Help thì hiện ra file PDF .thầy cho em xin code action của nút Help với a.

  288. Nguyễn Thanh Truyễn said

    chuyển từ hệ số 10 sang hệ số 2 bằng đệ quy
    giúp em với

  289. Mr Triệu said

    Khi Build file em gặp phải lỗi này, thầy chỉ cho em cách khắc phục với ạ. Em cảm ơn thầy.

    Note: Some input files use or override a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    Copying 56 files to C:\Documents and Settings\Admin\My Documents\NetBeansProjects\ExpoManagement\WorkingA pplication\SourceCode\ExpoManagement\build\classes
    compile:
    Copying 1 file to C:\Documents and Settings\Admin\My Documents\NetBeansProjects\ExpoManagement\WorkingA pplication\SourceCode\ExpoManagement\build
    C:\Documents and Settings\Admin\My Documents\NetBeansProjects\ExpoManagement\WorkingA pplication\SourceCode\ExpoManagement\nbproject\bui ld-impl.xml:689: The following error occurred while executing this line:
    C:\Documents and Settings\Admin\My Documents\NetBeansProjects\ExpoManagement\WorkingA pplication\SourceCode\ExpoManagement\nbproject\bui ld-impl.xml:517: copylibs doesn’t support the “indexMetaInf” attribute

  290. Le Hoang Dai said

    hưa thầy!Em cần nhờ thầy giúp 1 việc,là thay đổi file jar để có thể giả lập trên pc đc .Link file :http://wap.teamobi.com/detail.php?id=31 file jar .Xin Thầy hướng dẫn em làm,em đang rất cần.Cảm ơn thầy

  291. Xứng said

    Em chào thầy! Em bắt đầu học và đang làm đề tài quản lý nhân sự, em dùng IReport và gói jasperReport tạo ra 1 số file như jasper,jrxml nhưng em chưa biết cách nhúng vào netbean để tạo ra báo cáo file PDF. Xin thầy cho em code và chỉ cho em các bước làm với thầy nhé. Mong nhận sự giúp đỡ sơm từ thầy.Nếu được thì thầy cho em xin thầy cho em 1 bản demo thầy nhé! Nếu được xin thầy gửi vào mail cho em với.Em cảm ơn thầy! Chúc thầy luôn thành công!

  292. Võ Văn Hải said

    Em thử xem:

    JasperDesign jasperDesign = JasperManager.loadXmlDesign("MyReport.xml");
    JasperReport jasperReport = JasperManager.compileReport(jasperDesign);
    // Run-time report parameters
    Map parameters = new HashMap();
    parameters.put("title", "A user-customized title");
    // Fetch your database connection
    Connection conn = DBConnectionFactory.getConnection(); 
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,  parameters, conn);
    JasperExportManager.exportReportToPdfFile(jasperPrint, "report.pdf");
    
  293. Xứng said

    Thầy ơi! Thầy có gói thư viện nào vừa dùng để load file JRXML lên k thầy? Nếu thầy có thầy send cho em với. Em down cả 1 gói JasperReport nặng quá nên lúc chạy chương trình rất lâu thầy ah! Em cảm ơn thầy! Chúc thầy tuần mới thành công!

  294. assembly said

    Thầy ơi thầy làm ơn cho em hỏi ạ,em đang làm bài tập lớn quản lý khách sạn bằng java,em dùng JFormattedTextField để nhập ngày đến và ngày đi nhưng khi em muốn tính tiền bằng ngày đi – ngày đến thì phải làm thế nào,thầy giúp em nha thầy,em cảm ơn thầy nhiều lắm,em dùng NetBeans,em chào thầy.

  295. Tuyết Hạnh said

    Em chào Thầy! Em đang làm phần mềm báo cáo thực tập tốt nghiệp bằng JCreator Pro, Thầy có thể gửi cho em 1 form mẫu Đăng nhập có liên kết với CSDL được không ạ Thầy. Mong Thầy giúp đỡ, em cảm ơn Thầy!

  296. Athysirus said

    Thầy ơi sao em chạy eclipse helios lâu lâu khi Ctr+SpaceBar thì nó lại báo Not Responding vậy ạ???

  297. johann said

    Chaò thầy. Em đang làm JPA Projetc. Em đang làm phần Report với CrystalReport. Em hiểu sao em không add đươc thư viện Crystal Report Java Project Runtime Library..Khi chọn add Library và chọn thư viện trên thì nó báo “The Crystal Reports Java Project Runtime Library cannot be added to a web project. Please consult product documentation on how to add Crystal Reports to a web project. “..

    Xin thầy chỉ bảo..Em đã tạo được Report và viết code để test nhưng báo lỗi. Em nghj là bin thiếu thư viện trên

  298. Vũ Trần Lộc said

    Thưa thầy em có 1 câu hỏi, em tạo 2 jframe form trong java là admin và login, em tạo 1 comboBox để chuyển đổi ngôn ngữ ở login, bây giờ em muốn ngôn ngữ mà người dùng đã chọn ở login thay đổi luôn trong admin mà không cần làm thêm 1 comboBox nữa ở admin thì làm sao hả thầy, em xin cảm ơn trước vì blog của thầy rất bổ ích

  299. Hiển said

    Chào thầy, em có 2 vấn đề đang vướng phải, mong thầy giúp em với:

    1- Gửi ResultSet tới trang JSP:
    – Tại servlet , emcó tạo 1 session : session.setAttribute(“lstResultSet”, rs) với rs là 1 ResultSet. Sau đó gửi tới trang JSP, tại đây nhận session lstResultSet, hiển thị bình thường nhưng chỉ cần F5 1 cái thì ko hiển thị gì luôn. Vậy cách khắc phục ntn?
    – Liệu có thể gửi trực tiếp từ Model tới View ResultSet luôn mà ko cần qua Controller(Servlet) hay ko & nếu có thì cách giải quyết ntn?

    2- Em có 1 textarea với dữ liệu như sau:
    Inter Milan
    AC Milan
    Juventus

    Em muốn tách dữ liệu đó, mỗi dòng làm 1 bản ghi rồi insert vào Database thì phải làm thế nào?

    Em cảm ơn thầy

  300. Võ Văn Hải said

    1. Không gửi ResultSet. Nên đưa vào tập hợp rồi gửi. Hoặc dùng WebRowSet.
    2. Lấy được giá trị thông qua submit. Dùng StringTokenizer để tách theo “\n” rồi duyệt qua mà lấy.

  301. Võ Văn Hải said

    Em dùng khái niệm gọi là ResourceBundle để làm việc này. EM có thể google với từ khóa I18N.

  302. Võ Văn Hải said

    JPA project cho tầng thao tác với dữ liệu, thêm crystal report vào đó làm gì. CR yêu cầu project type phải là Web project.

  303. Võ Văn Hải said

    Bộ nhớ ít? Virus?

  304. Võ Văn Hải said

    Tìm đâu đó trên blog này có ví dụ đó.

  305. Võ Văn Hải said

    Thì em phải convert kiểu text có trên JFormattedTextField lại thành kiểu ngày.

  306. Võ Văn Hải said

    Nếu em chỉ gọi report để hiển thị thì đâu cần cả gói JR!

  307. Hiển said

    Thầy có thể cho em xin ví dụ về StringTokenizer để tách “\n” được ko ạ? Em cảm ơn thầy.

  308. Hiển said

    Ah em làm được rồi :D.

  309. mai said

    Em muốn hỏi về java và oracle :
    1.Em lam giao dien bang java nhưng insert dữ liệu từ giao diện xuống csdl Oracle thì bị lỗi mặc dù em đã chỉnh trong regedit NLS_LANG.. UTF8, trong oracle set NLS_CHARACTERSET và NLS_NCHAR_CHARACTERSET đều là utf8 mà vẫn bị lỗi.
    2.Em muốn làm mã tự động tăng trong csdl oracle từ AB001 lên AB002 thì viết hàm và trigger như thế nào ạ?Nhờ sự giúp đỡ ạ.

  310. Pastore said

    Thầy ơi cho em hỏi làm sao để insert tiếng Việt có dấu vào DTB thông qua Stored Procedure ạ?

    Stored Procedure :
    CREATE PROC Insert_CauHoi
    @MaLoaiCauHoi int,
    @MaKS int,
    @NoiDungCauHoi nvarchar(100)
    AS
    INSERT INTO CauHoi VALUES(@MaLoaiCauHoi,@MaKS,@NoiDungCauHoi)

    Em lấy dữ liệu trên form từ trang JSP, khi INSERT vào thì dữ liệu nó lại thành : “Theo bạn CLB nào sẽ vô địch”

  311. Xứng said

    Em chào Thầy! Thầy ơi! Em đang thực hiện lọc dữ liệu trong Ireport mà em đang bị lỗi, khi em định nghĩa 1 biến giả $p{MaPB} thì không có bản ghi nào cả. Mong thầy giúp em. Em cảm ơn thầy!

  312. Jinyotino said

    Thưa thầy!
    E đang lập trình chương trình chat bằng Java. Khi chat trên localhost thì hiển thị tiếng việt được. Nhưng khi chat 2 máy trên mạng Lan thì máy bên kia không hiển thị tiếng việt được
    VD như chữ “Cộng” nó hiển thị là “C?ng”. Mong thầy giúp đỡ e, e cảm ơn thầy nhiều ạ!

  313. Võ Văn Hải said

    Thêm N’ vào trước giá trị unicode cần chèn.

  314. Hiển said

    Chào thầy, e đang có ý định tìm hiểu về lập trình Android, thầy có thể chia sẻ cho em tài liệu để em học được ko ạ? Em đã học về Java cơ bản, Java desktop, Java web.

  315. Trần Xuân Hải said

    Em chào thầy!
    Em có một vấn đề này muốn hỏi thầy. trong JFrame của em có 1 textbox và một JTable, 1 button. Bầy giờ em muốn khi điền vào textbox và click vào button thì dữ liệu lấy được từ database sẽ hiển thị xuống JTable. khi tiếp tục nhập vào textbox và click button thì dữ liệu cung hiển thị ở JTable nhưng dữ liệu trước vẫn còn.
    Nói tóm lại là giống như kiểu ở các siều thị hay cửa hàng JTable sẽ hiển thị ra nhưng sản phẩm mà mình đã mua .
    Rất mong sớm được thầy giải đáp.

  316. Võ Văn Hải said

    thì em thêm 1 dòng vào Jtable. Nhưng phải thêm vào TableModel chứ không phải thêm trực tiếp vào Jtable. Em tìm đâu đó trên blog có nói về chỗ này.

  317. Dang Anh Tu said

    E chao thay !

    E den tu google thay cho e xin tai lieu ve java lap trinh giao dien nguoi dung bang cach keo tha do thay e chu am hieu ve ca contro benh java thay giup e voi nha thay va cach ket noi database SQL nha thay e tim ca tuan ma khong co thay oi .thay post link hay gui Email jup e nha thay mong hoi am cua thay e chao thay cam on thay nhieu !!!

  318. Võ Văn Hải said

    Thầy ít dùng kéo thả. Nếu em muốn dùng thì cài Netbeans. IDE này đầy đủ các công cụ kéo thả. Còn kết nối đến cơ sở dữ liệu thì bạn chịu khó tìm trong blog này đã có hướng dẫn rất kỹ.

  319. Trần Vĩnh Thuận said

    Thầy ơi, hiện tại em có một file *.tif (trong 1 file có chứa nhiều hình ảnh). Em muốn export ra file pdf. 1 file tif tương ừng với một file pdf. Thầy có thể hướng dẫn dùm em được không? Em xin cám ơn thầy

  320. athysirus said

    Thầy ơi thầy có biết về lập trình ứng dụng cho hđh Android với eclipse không ạ, em đang tìm hiểu cái này nhưng nhìn chung thì khó quá, nếu thầy có biết gì đó liên quan thì xin thầy giúp em, chẳng hạng tài liệu nào mà người mới bắt đầu có thể học được. Em xin cám ơn thầy ạ.

  321. athysirus said

    Em chào thầy.
    Thầy ơi cho em hỏi, HashMap bên Java có giống với Dictionary ben C# không ạ, nếu không thì ta có thể dùng cái gì giống Dictionary ạ. Thêm nữa, làm sao để lưu đối tượng xuống file .DAT ạ, mong thầy giúp em, em xin cám ơn ạ.

  322. jimhawkins said

    Thưa thầy cho e hỏi là trong java có phương thức nào kiểm tra kí tự trong 1 chuỗi là số hoặc kí tự ko a,em cảm ơn thầy

  323. Võ Văn Hải said

    em có thể dùng regular expression hoặc đọc từng từ mà dò thôi em.

  324. Võ Văn Hải said

    1. Thực ra cả 2 đều dùng ý tưởng là 1 collection ánh xạ 1 tập các Key-Value.
    2. Lưu xuống file Data hay file gì cũng được, em dùng Serialization.

  325. Athysirus said

    Dạ em cám ơn thầy ạ

  326. anh minh said

    thầy có thể hướng dẫn e biên dịch chương trình chat client server đc không thầy,e cho chạy thử chạy đc không biết sao không chat được,có lúc thì nó bào lỗi thế này
    java.net.BindException: Address already in use: JVM_Bind
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.(ServerSocket.java:194)
    at java.net.ServerSocket.(ServerSocket.java:106)
    at ChatRoomServer.main(ChatRoomServer.java:21)
    code em nghiên cứu từ bài viết của thầy mong thầy hướng dẫn em,em dùng netbean để soạn mã

  327. anh minh said

    Thưa thầy có thế hướng dẫn cho em cách biên dịch chương trình chat client server được không a.,e có nghiên cứu code của thầy nhưng không biết làm sao để cho nó có thể chat được với nhau,mong thầy hướng dẫn,em cảm ơn thầy

  328. jimhawkins said

    Thưa thầy cho em hỏi là làm sao để nhúng 1 audio hay video bằng java được ạ, tiện thể thầy cho em hỏi lun là sao trong eclipse e import được các project mà em code bằng eclipse mà những project e code trong netbean thì không import được vào eclipse.e cảm ơn thầy

  329. Võ Văn Hải said

    Không hiểu bạn muốn nhúng vào đâu? Còn project netbean không có import vào eclipse được. Bạn tạo 1 project mới rồi copy file và paste vào project.

  330. Võ Văn Hải said

    Coi lại cái port đang sử dụng.

  331. nqthanh said

    Thầy ơi em mới học java đang làm việc với một chương trình swing đơn giản có sử dụng store procedure, làm bình thường thì ok rồi nhưng bây giờ nâng cao hơn tí là:

    Yêu cầu 1:Tách các Store Procedure ra file .properties.

    Khi chương trình cần nội dung liên quan thì thực hiện đọc các cấu hình tương ứng dựa trên các yêu cầu

    Nhưng em không biết là mình phải lưu store procedure vào file properties như thế nào ? chỉ cần lưu tên hay là lưu toàn bộ store procedure?

    Yêu cầu 2:Customize Model cho JTable
    em cũng không hiểu yêu cầu này là làm gì ? có phải là cho ẩn hoặc hiện 1 column trên JTable không thầy?

    em cảm ơn thầy nhiều.

  332. romitv said

    Thưa thầy,

    Em muốn hỏi là có cách nào tạo pivot table excel bằng java không vậy thầy ?

    Em cám ơn thầy.

  333. TUẤN ANH said

    Em chào thầy!
    Em đang làm phần kết nối csdl Mysql . em muốn hỏi thầy về câu lệnh where if lồng nhau?
    select v.*,
    u.username
    from vehicle v
    join user u
    ON
    u.id = v.user_id
    where

    u.id = #{userId,jdbcType=INTEGER},

    and v.id = #{id,jdbcType=VARCHAR},

    cho em hỏi làm thế nào để khi userId , id đều = 0 ,null câu lệnh trên không báo lỗi?

    em cảm ơn thầy!

  334. Võ Văn Hải said

    Thầy chưa làm bao giờ.

  335. Lê Duy Tân said

    Dạ chào thầy! Thưa thầy em có một file text >100mb! Em dùng đoạn code sau để đọc và lưu vào một List:
    List listUser = new ArrayList();
    InputStreamReader isr = null;
    BufferedReader input = null;
    try {

    // isr = new InputStreamReader(new FileInputStream(file));
    // Read data
    isr = new InputStreamReader(new FileInputStream(file));

    input = new BufferedReader(isr);
    String read;
    listUser.clear();
    while ((read = input.readLine()) != null) {
    if (read.trim().equals(“”)) {
    showErrorDialog(0);
    break;
    }
    // gan data vao list
    listUser.add(read.split(“\t”));
    }
    isr.close();
    input.close();….
    Nhưng chương trình ko chạy được và báo lỗi: java.lang.OutOfMemoryError: Java heap space.
    Thầy cho em biết cách nào khác để đọc một file có dung lượng lớn ko ạ!

  336. Duy Tân said

    Thưa thầy!

    Trong java cách nào đọc một file dữ liệu như text chẳng hạn có dung lượng > 100mb không ? nếu có mong thầy hướng dẫn cách em đọc file đó! Em cám ơn thầy!

  337. Võ Văn Hải said

    Bạn dùng đa tiến trình để đọc:

    new Thread(new Runnable() {
    					@Override
    					public void run() {
    						String line="";
    						while(sc.hasNextLine())
    							line+=sc.nextLine()+"\n";
    						//xử lý line của bạn
    						sc.close();
    					}
    				}).start();
    
  338. ttn112 said

    Thưa thầy !

    Cho em hỏi làm sao để có thể đưa 1 JCombobox vào JTable và JCombobox đó lại chứa 1 JTable?

    dữ liệu của JTable thứ 2 được load từ Database ra

    Em cám ơn thầy.

  339. Duy Tân said

    Thưa thầy!
    Em 4 button : a, b, c , d. Khi em bấm vào một button thì sẽ add một tab lên đối tượng JTabbed Panel em đã tạo trước đó 4 tab đó lần lượt mang tên là a , b, c ,d. Giả sử em tiếp tục bấm button a thì chương trình sẽ tiếp tục tạo ra một tab a mới thêm vào 4 tab trước đó! Thầy cho em hỏi có cách nào kiểm tra nếu tab tên a đã tồn tại thì không add thêm nữa mà focus về tab a đó! Em cám ơn thầy rất nhiều!

  340. Võ Văn Hải said

    Xem thử code này thử:
    Lớp MyComboBoxEditor.java

    import javax.swing.DefaultCellEditor;
    import javax.swing.JComboBox;
    
    public class MyComboBoxEditor extends DefaultCellEditor {
        public MyComboBoxEditor(String[] items) {
            super(new JComboBox(items));
        }
    }
    

    Lớp MyComboBoxRenderer.java

    import java.awt.Component;
    import javax.swing.JComboBox;
    import javax.swing.JTable;
    import javax.swing.table.TableCellRenderer;
    
    public class MyComboBoxRenderer extends JComboBox implements TableCellRenderer {
        public MyComboBoxRenderer(String[] items) {
            super(items);
        }
    
        public Component getTableCellRendererComponent(JTable table, Object value,
                boolean isSelected, boolean hasFocus, int row, int column) {
            if (isSelected) {
                setForeground(table.getSelectionForeground());
                super.setBackground(table.getSelectionBackground());
            } else {
                setForeground(table.getForeground());
                setBackground(table.getBackground());
            }
            // Select the current value
            setSelectedItem(value);
            return this;
        }
    }
    

    Lớp Test.java

    public class Test {
    	public static void main(String[] args) {
    		JTable table = new JTable();
    		DefaultTableModel model = (DefaultTableModel)table.getModel();
    
    		// Add some columns
    		model.addColumn("A", new Object[]{"item1"});
    		model.addColumn("B", new Object[]{"item2"});
    
    		// These are the combobox values
    		String[] values = new String[]{"item1", "item2", "item3"};
    
    		// Set the combobox editor on the 1st visible column
    		int vColIndex = 0;
    		TableColumn col = table.getColumnModel().getColumn(vColIndex);
    		col.setCellEditor(new MyComboBoxEditor(values));
    
    		// If the cell should appear like a combobox in its
    		// non-editing state, also set the combobox renderer
    		col.setCellRenderer(new MyComboBoxRenderer(values));
    		
    		JFrame frm=new JFrame();
    		frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frm.setSize(400,400);
    		
    		frm.add(table);
    		
    		frm.setVisible(true);
    	}
    }
    

    Còn kết nối JDBC để lấy dữ liệu thì bạn có thể cải tiến.

  341. Võ Văn Hải said

    Đây là đoạn code cho 1 nút:
    trong đó tp là 1 JTabbedPane, btA là 1 nút

    if(o.equals(btA)){
    			int count=tp.getTabCount();
    			for (int i = 0; i < count; i++) {
    				String tt=tp.getTitleAt(i);
    				if(tt.equalsIgnoreCase("Thử nghiệm 1")){
    					tp.setSelectedIndex(i);
    					return;
    				}
    			}
    			JPanel p1=new JPanel();
    			tp.addTab("Thử nghiệm 1", p1);
    		}
    
  342. thầy ơi cho em hỏi, em cài đặt JavaFX giống trong link này là xài được phải không ạ http://download.oracle.com/javafx/1.2/gettingstarted/eclipse-plugin/index.html
    Nhưng sao em không sử dụng CSS vào file FX được, vã lại em tạo border cho container cũng không biết phải làm sao, em đang tự học javaFX nên còn khó khăn lắm ạ. Mong thầy giúp đỡ.

  343. Võ Văn Hải said

    Thầy không chuyên về JavaFX. Sorry. Bạn nào hướng dẫn dùm.

  344. Lê Duy Tân said

    Thưa thầy!
    Thầy cho em hỏi: em có một textbox rỗng, một button OK. khi em nhập bất kỳ chữ gì vào textbox, sau đó click vào OK thì ra một message dialog có nội dung là những chữ đã nhập rồi. Giờ em mún sau khi nhập chữ vào textbox cũng ra message dialog tương tự như vậy thì làm sao ạ?

  345. Võ Văn Hải said

    câu hỏi của bạn có phải là sau khi nhập chữ xong, nhấn enter thì chương trình hành xử tương tự như người dùng nhấn nút OK? nếu như thế thì bạn viết code cho JTextField lắng nghe sự kiện KeyListener.
    [sourecode language=”java”]
    KeyListener keyListener = new KeyListener() {
    public void keyPressed(KeyEvent keyEvent) { }

    public void keyReleased(KeyEvent keyEvent) { }

    public void keyTyped(KeyEvent keyEvent) {
    int keyCode = keyEvent.getKeyCode();
    //String keyText = KeyEvent.getKeyText(keyCode);
    if(keyCode==13)//==10???{
    //công việc của bạn
    }
    }
    };
    nameTextField.addKeyListener(keyListener);
    [/sourecode]

  346. Tuấn said

    Thầy ơi, thầy làm ơn xem hộ project sau lỗi ở đâu ạ: http://www.mediafire.com/?ekr0ku1az5cu9d7

  347. Khánh said

    Mong Thầy Giúp Đỡ!!!
    Em đang luyện tập về search từ file .txt; Em chỉ có thể search đối với các chữ abc, nhưng hiện tại em lại đang có nhu cầu search các từ tiếng việt hay tiếng Nhật thì không biết phải code làm sao ạ.

  348. Võ Văn Hải said

    LỖi thế nào bạn nói rõ đi.

  349. Võ Văn Hải said

    thì vẫn search bình thường. Tuy nhiên khi xử lý file thì bạn làm việc với Unicode thôi. trong java, để đọc file text dạng unicode bạn có thể dùng như sau:

    FileInputStream fis=new FileInputStream("your file path");
    Scanner sc=new Scanner(fis,"UTF-8");
    while(sc.hasNextLine()){
        String line=sc.nextLine();
        //xử lý line
    }
    
  350. Tuongvi81 said

    Em chào Thầy!
    Em mới học Java và MySql.
    Em muốn viết 1 class Kết nối CSDL sau đó trên các Form gọi class đó ra khi cần. Em phải làm sao. Mong thầy chỉ dẫn cụ thể. Cảm ơn Thầy nhiều!

  351. Võ Văn Hải said

    Bạn tìm trong blog có code kết nối rồi.

  352. nguyên said

    em muốn chỉnh sửa phần mền của vitalk thành phiên bản riêng của mình. en thấy có người làm được nhưng em không biết làm như thế nào thầy có thể chỉ giúp em không ?

  353. nguyên said

    em cần tạo 1 file mêm winrar nhưng em không biết phải bắt đầu tù đâu ,thầy có thể giúp em được không thầy ?

  354. Hoa said

    Viết chương trình trò chơi Tetris được cài đặt bởi hệ thống lớp thông qua đóng gói dữ
    liệu. Bài được chia làm 2 phần:
    Phân A – Xây dựng các lớp về các hình xếp.
    Phần B – Xây dựng các lớp giao diện trò chơi
    Hướng dẫn tiến hành lập trình
    Phần A – Xây dựng các lớp về các hình xếp
    Có 7 hình cơ bản trong trò chơi xếp hình:
    Hình gạch Hình chữ L và
    Hình chữ S và Hình chữ nhật
    Hình tháp
    Mỗi một hình được cấu trúc từ 4 block chính. Mỗi hình có thể quay 90 và được xếp sao
    cho khít vào các hình đã có ở phí dưới, ví dụ:
    Mỗi một hình được xác định bởi tọa độ. Hình sẽ có tọa độ cơ sở là (0,0) ở phía duới bên
    tay trái, được minh họa như sau:
    (0,0) <= hình phía dưới bên trái
    (0,1) <= hình phía trên bên trái
    (1,0) <= hình phía dưới bên phải
    (1,1) <= hình phía trên bên phải
    Trong ít trường hợp, tọa độ ban đầu không phải là (0,0), như trong ví dụ với hình chữ S:
    (0,1) <= hình phía dưới bên trái
    (0,2) <= hình phía trên bên trái
    (1,0) <= hình phía dưới bên phải
    (1,1) JUnit Test
    Case), để kiểm tra tất cả các phương thức getWidth(), getHeight(), getSkirt(),
    fastRotation(), equals(). Và kiểm tra rằng fastRotation() hoạt động như
    computeNextRotation(). Cơ sở của test là bắt đầu với những hình khác nhau, kiểm
    tra trạng thái xuât phát của các hình. Thực hiện test và ghi ra tất cả những lỗi tìm
    được.
    Phần B – Xây dựng các lớp giao diện trò chơi
    Mục đích:
    – Nhằm ghi nhớ trạng thái của bàn cờ
    – Đưa thêm hình vào
    – Cho hình rơi theo chiều thẳng đứng
    – Đưa ra một số điều kiện và ngoại lệ trong chuyển động và
    sắp xếp hình
    – Phải kết nối được trạng thái hình vào trong giao diện
    Cấu trúc giao diện:
    – Có giao diện dạng kẻ ô – là mảng 2 chiều kiểu Boolean, để
    kiểm tra điểm rơi của hình
    – Tọa độ thấp nhất bên duới phía trái là (0,0), với tọa độ X
    tăng theo chiều sang phải và Y tăng theo chiều lên trên
    – Độ rông vào cao của bảng giao diên trò chơi là tổng chiều
    rộng và cao của các ô trong bảng giao diện
    – Phương thức clearRow() để xóa những vết mà hình đó đã
    qua trong bảng giao diện
    – Phương thức place() để đưa ra tọa độ hiện tại của hình
    trong bảng giao diện
    – Phương thức dropHeight() để tính toán các khả năng rơi
    của hình trong bảng giao diện
    Khởi tạo – bắt đầu băng một bảng giao diện rỗng (chưa chứa hình trong đó), có độ rộng
    và dài là 10×20.
    Ngoài ra có thể làm thêm các chức năng khác như phương thức undo() – để quay lại vị trí
    trước đó một vị trí, backup() – để lưu lại những vị trí đã qua của hình.
    Tạo Unit Test – Tạo lớp PieceTest JUnit bằng Eclipse (vào New -> JUnit Test Case), để
    kiểm tra tất cả các phương thức clearRow(), place(), dropHeight().

  355. hoang nam said

    Dạ em chào Thầy !
    Hiện tại em chuẩn bị làm ĐA lập trình mạng ,đề tài là : xây dựng một chương trình giám sát các máy trong mạng Lan (giống chương trình Remote Desktop) , nhưng em chưa biết phải bắt đầu từ đâu và cần phải tìm hiểu những gì (sử dụng giao thức nào , cơ chế gì…?) để làm đề tài trên ,em mong thầy có thể cho em vài lời khuyên ạ! em xin cảm ơn Thầy .

  356. Van Kham said

    Em chào Thầy !
    Thầy hướng dẫn em cách bẫy lỗi các ký tự đặc biệt khi người dùng nhập liệu vào textfield trong java.
    Em cám ơn Thầy

  357. Nguyen Quan said

    Thay cho em hoi thuat toan nao dung de kiem tra nhanh nhat mot doan thang tao boi 2 diem A(x0,y0), B(x1, y1) co cat(intersect) mot da giac loi bat ki(tam giac, hcn, hv…), va tu thuat toan nay minh co the dung de kiem tra 2 da giac bat ki co cat nhau hay ko? Neu duoc thay co the viet ra ma pseudo code dc ko ah?

    Cam on thay!

  358. Võ Văn Hải said

    Mình chưa làm việc với thuật toán này. Ai biết nhờ trả lời dùm. Xin cám ơn!

  359. anhvu said

    Thưa thầy,kì này em làm đồ án nguyên lý hệ điều hành đề tài em là mô phỏng trạng thái xử lý của Thread bằng thuật toán FIFO , thầy có thể hướng dẫn cho em sơ bộ về đề tài này được không ạ vì em theo e hỉu cái đề là trong hàng đợi sẽ có các tiến trình được xếp theo thứ tự trước sau cái náo trước sẽ thực hiện trước đúng không thầy,code thì e đã làm được chút ít không biết có sát với cái đề không tức là ban đầu e tạo ra một số tiến trình giả ví dụ từ tiến trình từ 1 – 5 khi mà cho thực hiện thì tiến trình nào thực hiện xong thì nó sẽ có thông báo cho biết là tiến trình đó đã thực hiện xong nhưng ngặt 1 chỗ là trong quá trình xử lý thread thì các nút bấm cũng như thông báo hình như nó bị đơ không thể can thiệp được chỉ khi nào chương trình chạy xong thì mới có thể thao tác được,mong thầy cho em hướng giải quyết.em cảm ơn thầy

  360. e mới học java, giờ e gặp 1 vấn đề như thế này mà chưa bik phải xử lý làm sao …

    em tạo ra 1 “button exit”, e muốn là khi click vào nó sẽ hiện ra 1 dialog confirm…yes, no , cancel !

    e vẫn chưa làm được , chỉ mới làm được việc click vào button là out frame luôn
    ==>

    public void actionPerformed(ActionEvent e) {
    if(e.getSource()==btExit)
    {
    System.exit(0);
    }
    }

    vậy giờ e phải sửa code như thế nào ạ !

  361. kim chi said

    thầy cho e hỏi, các phương pháp để đọc nội dung 1 file text và điểm khác nhau của chúng được k ạ ?
    ví dụ sử dụng InputStream/OutputStream thi khác gì với sử dụng BufferedOutputStream/BufferedInputStreaam

  362. Hoa said

    thưa thầy :

    để lập trình được một game xếp hình thì em cần học những vấn đề gì ạ !

  363. Em đang học Lập trình mạng và đang sử dụng phần mềm Netbean 7.0 để lập trình nhưng mỗi lần chạy file là nó báo:
    Error: Could not find or load main class baitap_form.G_Bai24
    Java Result: 1
    Chỉ em cách khắc phục với. Xin cảm ơn

  364. Võ Văn Hải said

    Bạn nhấn chuột phải lên file cần chạy, chọn run file (Shift-F6)chứ đừng nhấn nút run(F6) trên thanh công cụ.

  365. Em cũng chạy file bằng chuột phải rồi chọn Run File (Shift-F6) nhưng vẫn lỗi. Bạn em gửi cho 1 project thì mấy file trong đó em chạy thì được, khi em đem bài của mình copy qua đó cũng chạy được còn trong project em tự tạo lại báo lỗi???

  366. Ai giúp em giải bài này với, em giải hoài mà không được:
    Viết chương trình với giao diện như hình vẽ, với các chức năng xử lý như sau: khi nhấn vào các nút Checkbox thì nhãn của từng nút sẽ được kết lại và hiển thị ra nhãn bên dưới. Giả sử cả 3 checkbox được chọn thì có kết quả như hình kế bên.

  367. Em giải được đến đây à. Thầy chỉ thêm em với.

    private void ckbTruongActionPerformed(java.awt.event.ActionEvent evt) {
    String a1,a2,a3;
    String a[]={“Trường”,” Cao Đẳng”,” Kinh tế-Công Nghệ”,””};
    {
    if(ckbTruong.getText()== null)
    {
    a1=a[3];
    }
    else
    {
    a1 =a[0];
    }
    if(ckbCaoDang.getText()== null)
    {
    a2=a[3];
    }
    else
    {
    a2=a[1];
    }
    if(ckbKinhTe.getText()== null)
    {
    a3=a[3];
    }
    else
    {
    a3=a[2];
    }
    }
    lbTen.setText(a1+a2+a3);
    }

    private void formWindowOpened(java.awt.event.WindowEvent evt) {

    }

    private void ckbCaoDangActionPerformed(java.awt.event.ActionEvent evt) {
    lbTen.setText(ckbCaoDang.getText());
    }

    private void ckbKinhTeActionPerformed(java.awt.event.ActionEvent evt) {
    lbTen.setText(ckbKinhTe.getText());
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
    */
    try {
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
    if (“Nimbus”.equals(info.getName())) {
    javax.swing.UIManager.setLookAndFeel(info.getClassName());
    break;
    }
    }
    } catch (ClassNotFoundException ex) {
    java.util.logging.Logger.getLogger(Bai25.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
    java.util.logging.Logger.getLogger(Bai25.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
    java.util.logging.Logger.getLogger(Bai25.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
    java.util.logging.Logger.getLogger(Bai25.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {

    public void run() {
    new Bai25().setVisible(true);
    }
    });
    }
    // Variables declaration – do not modify
    private javax.swing.JCheckBox ckbCaoDang;
    private javax.swing.JCheckBox ckbKinhTe;
    private javax.swing.JCheckBox ckbTruong;
    private javax.swing.JLabel lbTen;
    // End of variables declaration
    }

  368. Võ Văn Hải said

    Để hiện 1 xác nhận trước khi thoát, có thể làm như sau:

    int x= JOptionPane.showConfirmDialog(null, "Do you want to exit?","Confirmation",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
    		if(x==JOptionPane.YES_OPTION){
    			System.exit(1);
    		}
    
  369. Võ Văn Hải said

    Trời, viết Thread mà không dùng Thread mới lạ chứ! Em phải dùng Jav Thread, thế thôi!

  370. Võ Văn Hải said

    Em phải dùng Java Thread!

  371. do dang khanh said

    Thay Hai oi cho hoi, tren trang web nay, co huong dan lam jsf voi netbeans 6.0.
    Khi view source.java, minh co the thay textbox va combobox tren giao dien da design.
    Nhung minh lam tuong voi netbean 6.5.1 thi khong co ho tro nua. Xin chi giup co cach nao de thay cac textfield do khong?

    http://www.javaguicodexample.com/javavisualwebjsfnetbeans3.html

  372. Bill Paul said

    Thầy có thể giúp em được không ạ!
    Viết chương trình giao diện cho phép người dùng tính căn bậc 2 (sqrt) của 1 số thực (>0) như sau:
    – Chức năng tính căn
    o Người dùng nhập số cần tính (textfield)
    o Người dùng chọn sai số (từ 1 ->8 chữ số). Mặc định sai số là 2
    o Khi người dùng ấn nút “compute” thì tính toán và hiện kết quả trong textarea kết quả
    – Chức năng clear: khi người dùng nhấn nút “clear” thì xóa nội dung mà người dùng nhập vào hiện
    trong phần input
    – Chức năng clear all: làm giống chức năng clear, nhưng phải xóa cả nội dung trong phần kết quả và
    chuyển sai số về mặc định.
    Lưu ý:
    – phần chọn sai số các bạn có thể sử dụng Radio-button hoặc combo-box
    – Kết quả của mỗi lần tính phải xuất hiện trên 1 dòng:
    o Nếu input data không hợp lệ (không phải số thực, số âm) thì xuất dòng: Invalid Input
    o Ngược lại: xuất dòng kết quả dạng
    Sqrt( ) =
    Trong đó là số được nhập vào, kết quả tính được
    – Phải dùng scrollbar cho phép người dùng có thể xem những kết quả cũ/mới dễ dàng
    Qui định:
    – Các bạn sẽ phải tự xây dựng hàm tính căn của mình (không dùng hàm của MATH) dựa trên thuật toán
    được mô tả tại địa chỉ: http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
    – Tên class: cComputingSquareRoot_
    – Title của cửa sồ: – Square Root
    – Trong đó là mã số sinh viên của bạn

    thầy hưỡng dẫn từng dòng luôn nha thầy e cảm ơn thầy!

  373. Võ Văn Hải said

    Bạn phải cài thêm plugin bạn à. NB 6.5 không mặc định hỗ trợ Visual Design.

  374. xistrum said

    Thầy ơi choi em hỏi làm sao chạy eclipse birt report trong netbeans. Em đang làm 1 cai project webapp bằng netbeans yêu cầu phải tạo 1 cái birt report em tìm trên mạng hoài mà không làm được. Mong thầy giúp đở. Cảm ơn thầy!

  375. Long said

    Thầy có thể giúp em được không ạ!
    Là sao để viết 1 sự kiện của 1 nút là tạo một đối tượng ví dụ
    new Characters(name,blood,damage,defend,brisk,fame);
    rồi đóng cả JFrame ko. Rồi làm sao để gọi đối tượng đã tạo để tính toán.
    e cảm ơn thầy!

  376. Long said

    Soure bài em đang làm.

    http://www.mediafire.com/?jt1nbz6ocwlh9t3

  377. Võ Văn Hải said

    Chạy cái eclipse BIRT, thiết kế report sau đó gọi report trong netbean. Còn muốn thiết kế dạng NetBean thì có iReport.

  378. Võ Văn Hải said

    Không biết tôi hiểu như vầy có đúng không: Có 1 JFrame thứ nhất, gọi 1 JDialog thứ hai. Trong JDialog thứ 2 tạo 1 đối tượng bằng cách nhận từ người dùng sau đó đóng JDialog 2 và truyền đối tượng này sang JFrame thứ nhất để tiếp tục xử lý? Nếu thế thì đơn giản như sau:

    
    import java.awt.BorderLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.Box;
    import javax.swing.JDialog;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    public class MyJDialog extends JDialog{
    	private YourObject obj;
    	private JTextField tfID,tfName;
    	public MyJDialog() {
    		setTitle("???????????????");
    		setModal(true);
    		setSize(300,100);
    		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    
    		Box b=Box.createVerticalBox();
    		Box b1=Box.createHorizontalBox();Box b2=Box.createHorizontalBox();
    		b1.add(new JLabel("ID:"));b1.add(tfID=new JTextField());
    		b2.add(new JLabel("Name:"));b2.add(tfName=new JTextField());
    		b.add(Box.createVerticalStrut(10));
    		b.add(b1);b.add(Box.createVerticalStrut(10));
    		b.add(b2);b.add(Box.createVerticalStrut(10));
    		this.add(b,BorderLayout.NORTH);
    		addWindowListener(new WindowAdapter() {
    			@Override
    			public void windowClosing(WindowEvent e) {
    				obj=new YourObject(tfID.getText(),tfName.getText());
    			}
    		});
    	}
    	public YourObject getObj() {
    		return obj;
    	}
    
    	public void setObj(YourObject obj) {
    		this.obj = obj;
    	}
    }
    
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    
    public class MainFrame extends JFrame implements ActionListener{
    	private JButton btn;
    	public MainFrame() {
    		setSize(300,300);
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    		this.add(btn=new JButton("Kick me"));
    		btn.addActionListener(this);
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		Object o=e.getSource();
    		if(o.equals(btn)){
    			MyJDialog dlg=new MyJDialog();
    			dlg.setVisible(true);
    			YourObject obj=dlg.getObj();
    			JOptionPane.showMessageDialog(null, obj.getId()+":"+obj.getName());
    		}
    	}
    	public static void main(String[] args) {
    		new MainFrame().setVisible(true);
    	}
    }
    
    public class YourObject {
    	private String id;
    	private String name;
    	public YourObject() {
    	}
    	public YourObject(String id, String name) {
    		this.id = id;
    		this.name = name;
    	}
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	@Override
    	public int hashCode() {
    		final int prime = 31;
    		int result = 1;
    		result = prime * result + ((id == null) ? 0 : id.hashCode());
    		return result;
    	}
    	@Override
    	public boolean equals(Object obj) {
    		if (this == obj)
    			return true;
    		if (obj == null)
    			return false;
    		if (getClass() != obj.getClass())
    			return false;
    		YourObject other = (YourObject) obj;
    		if (id == null) {
    			if (other.id != null)
    				return false;
    		} else if (!id.equals(other.id))
    			return false;
    		return true;
    	}
    }
    
  379. Hoa said

    Bài 2. Composite (câu 1 đối với tuần 05, và phần còn lại đối với tuần 06)
    1. Đọc hiểu và thực hiện cài đặt mẫu Composite theo sı sơ đồ lớp cho bởi hình dưới.
    2. Viết một chương trình client để test sản phẩm:
    − Xây dựng 1 mảng figure[] gồm 4 phần tử kiểu Shape trong đó 1 phần tử Line, 2 phần
    tử Circular; 1 phần tử Compsite (gồm 3 Lines và 1 Circular) .
    − Thực hiện đổi mẫu đồng bộ và quay 1 góc 90o đối với các đối tượng trong figure.

  380. Hoa said

    Thưa thầy Composite là gì thế ?
    thầy giải thích giùm em bài này
    Em cảm ơn thầy

  381. Võ Văn Hải said

    Em xem trong DesignPatterns sẽ có mẫu này.

  382. Võ Văn Hải said

    Xewm thêm trong Design Patterns sẽ có mẫu Composite.

  383. thầy ơi, cho em hỏi cái vấn đề về cái mảng trong java 1 tí ạ

    hiện giờ , em tạo 1 cái cavas . bên trong nó em tạo 1 điểm random bằng code như này :

    =>

    “public class MyCanvas extends Canvas
    {
    public MyCanvas()
    {

    setBackground (Color.LIGHT_GRAY);

    }

    private static int rdx()
    {
    Random rdx = new Random();
    int x=rdx.nextInt(595);
    return x;

    }
    private static int rdy()
    {

    Random rdy=new Random();
    int y=rdy.nextInt(240);
    return y;

    }
    public void paint(Graphics g)
    {
    try
    {

    g.fillRect(rdx(),rdy(),10,10);
    repaint(0);
    Thread.sleep(1000);
    }
    catch (InterruptedException ex)
    {
    }
    }
    }”

    nhưng như thế này thì làm sao mà tạo được nhiều điểm ạ , e copy nhìu dòng này để có nhiều điểm random : g.fillRect(rdx(),rdy(),10,10);

    nhưng e thấy ko ổn !!!

    thầy code cách nào đưa các tọa độ vào 1 mảng để quản lý không ạ,,, xin nhờ thầy hướng dẫn ^^ .

  384. Đức said

    Em chào thầy. Em mới tìm hiểu về RMI, em có viết 1 chương trình remote desktop qua mạng Lan theo TCP socket client/server Bây giờ em muốn chuyển sang RMI thầy có thể giúp em được không ạ. Đây là source của phần server

    http://www.mediafire.com/?a3djd2j1fnf43ac

  385. cao Anh Hào said

    Thầy ơi, cho em hỏi muốn set hot key trên toàn hệ điều hành thì làm như thế nào thầy (window).
    Em chỉ làm được keylistener thôi nhưng khi qua Cửa sổ khác thì không nhấn được nữa.

  386. xistrum said

    Em thiết kế report trong eclipse Birt rồi nhưng em không biết gọi nó trong netbeans như thế nào thầy có thể hướng dẫn cách gọi cho em được không. Em cám ơn thầy!!

  387. Dao Nguyen said

    Chào Thầy, em đang làm đề tài về Spring Framework và Hibernate, Thầy có tài liệu về cái này ko ạ.

  388. tanpham said

    Chào thầy ! Thầy cho em hỏi vài vấn đề về Birt Report. Em đang viết ứng dụng web app bằng NetBean, trong trang web của em có gọi Birt Report nhưng em chưa tìm được cách giải quyết, mong thầy hướng dẫn giúp em cách gọi Birt Report trong NetBean. Em đã tạo được report trong Eclipse rồi ạh.
    Em cám ơn thầy! Chúc thầy sức khỏe.

  389. kim huyen said

    th ơi giúp e với, e có 1 đề tài java là image slide , trong đó có button la flower, bird,cat,fish. khi nhấn 1 trong 4 nút đó nó sẽ hiện hình ảnh ứng với tên của mỗi nút lên 1 khung hình chính, ngoài ra ở phía dưới cũng hiển thị lên 5 hình ảnh tiếp theo, khi nhấn vào các hình nhỏ đó,nó sẽ hiên lên khung hình chính , e phải làm thế nào đây th

  390. Em chào thầy, em đang muốn viết 1 ứng dụng theo kiểu runtime environment. Ví dụ: có 1 chương trình đã được biên dịch thành file.class có chức năng là hiển thị thời gian thực của hệ thống. 1 chương trình khác (chương trình chính) khi chạy sẽ có chức năng addComponent, sau khi add chương trình con sẽ nằm trong chương trình (ví dụ chương trình chính là 1 cửa sổ lớn, chương trình con là cửa sổ nhỏ năm trong, hay đơn giản là chạy trên console), chương trình chình chính sẽ có khả năng start component, tức khi start đồng hồ ở chương trình con bắt đầu chạy, ngoài ra có thể stop hoặc start hoặc delete chương trình con. Đại khái chương trình chính như 1 môi trường để các file.class có thể chạy trên nó.
    Anh có thể hướng dẫn qua cho e được không. Cảm ơn thầy.

  391. cmm said

    Dạ thưa thầy! Em download phần code của thầy về kết nối CSDL trong java nhưng không thêm được vào java để chạy thử.
    Thầy có thể giúp em với không ạ?
    Em cảm ơn thầy nhiều!

  392. Nam said

    Sinh chương trình khung từ biểu đồ thiết kế lớp
    – Xây dựng công cụ đồ họa thiết kế lớp và các quan hệ
    – Sinh tự động chương trình khung Java: lớp, thuộc tính và định nghĩa phương thức
    (phương thức rỗng)

    thầy giúp em hướng dẫn làm bài này ạ !

  393. Nam said

    em cảm ơn thầy

  394. huycuong said

    thua thay!
    cho em hoi.sao eclipse cua e khong co swing.ban e clipse nao thi co swing a

  395. Luan said

    Thay oi cho em hoi mot chut
    Em dang lam mot java application , dau tien em co mot form hien thi tat ca cac khach hang trong jtable , tren form co mot button dung de mo form nhap mot khach hang
    vay sau khi em tao khach hang o form moi mo thi co cach nao load lai du lieu trong form cu trong khi em khong tat form cu ma chi mo form moi
    Cam on thay nhieu

  396. anhvu said

    Em đang làm bài tập về cái Window Explorer thầy có thể giúp em 1 cái demo để em tham khảo được không thầy .Em cảm ơn thầy

  397. Cao Trung Kiên said

    Em chào thầy ạ
    Em tạo một bảng gồm 2 phần. 1 bên là id và password để đăng nhập tài khoản SQL một bên là id và password để người dùng đăng nhập vào hệ thống. Vậy thầy cho em hỏi là làm cách nào mà ta chỉ cần đăng nhập tài khoản SQL một lần duy nhất. những lần sau ta chỉ việc đăng nhập id và pass của người dùng là vào được hệ thống ạ..
    Em cảm ơn thầy

  398. Chung said

    thầy ơi cho em hỏi co 2 button và 2 list.Khi em muốn click vào button 1 thì nó nhảy đến cái list 1 và ẩn cái list 2 đi, và ngược lại thì làm thế nào ạ.thầy hướng đẫn em được ko

  399. Võ Văn Hải said

    Bạn có thể lưu thông tin tài khoản SQL đã mã hóa xuống 1 file properties là xong. Lần chạy tới thì dùng tài khoản đó và giải mã ra.

  400. Võ Văn Hải said

    “Em dang lam mot java application , dau tien em co mot form hien thi tat ca cac khach hang trong jtable , tren form co mot button dung de mo form nhap mot khach hang
    vay sau khi em tao khach hang o form moi mo thi co cach nao load lai du lieu trong form cu trong khi em khong tat form cu ma chi mo form moi”
    Thì em phải Build lại cái Table hoặc em lấy cái row mới thêm vào add vào table sau khi form thêm đóng (dùng JDialog để có Modal thay vì JFrame)

  401. NHAT said

    import java.io.*;
    import java.util.StringTokenizer;
    import java.util.*;

    /* Bai tap 1_48 – Chuong trinh trac nghiem don gian*/
    class CAUHOI{
    public static String cauhoi;
    public static String traloi[]=new String [4];
    public static int caudung;
    /*private int sl= 0;

    public String getCH(){
    return cauhoi;
    }
    public String[] getTL(){
    return traloi;
    }
    public int getCD(){
    return caudung;
    }
    public void setCH(String cauhoi){
    this.cauhoi=cauhoi;
    }
    public void setTL(String[] traloi){
    this.traloi=traloi;
    }
    public void setCD(int caudung){
    this.caudung=caudung;
    }
    public void setSL(int sl){
    this.sl= sl;
    }
    public int getSL(){
    return sl;
    }
    public CAUHOI(){
    }
    }
    class ChucNang1 {
    CAUHOI ch= new CAUHOI();
    CAUHOI[] list= new CAUHOI[50];
    public void ghiFile(CAUHOI t) {
    try{
    FileOutputStream fis= new FileOutputStream(“QuanLy.dat”,true);
    PrintWriter pw= new PrintWriter(fis);
    pw.println(t.getCH());
    pw.println(t.getTL());
    pw.println(t.getCD());

    pw.close();
    fis.close();
    }catch(IOException io){
    System.out.println(“Xuat hien loi: “+io.getMessage());
    } finally{
    System.out.println(“Ghi file thanh cong!”);
    }
    }
    public void docFile(){
    try{
    int count= 1;
    FileReader fr= new FileReader(“QuanLy.dat”);
    BufferedReader buffer= new BufferedReader(fr);
    buffer.readLine();
    while(buffer.readLine()!= null){
    count++;
    }
    ch.setSL(count/6);
    buffer.close();
    fr.close();
    FileReader fr2= new FileReader(“QuanLy.dat”);
    BufferedReader input= new BufferedReader(fr2);
    for(int i=1 ; i<=ch.getSL(); i++){
    list[i]= new CAUHOI();
    list[i].setCH(input.readLine());
    list[i].setTL(input.readLine());
    list[i].setCD(Integer.parseInt(input.readLine()));

    }
    }catch(FileNotFoundException fe){
    System.out.println("Xuat hien loi: "+fe.getMessage());
    }catch(IOException io){
    System.out.println("Xuat hien loi: "+io.getMessage());
    }
    }

    /*public void nhap(){
    int i= ch.getSL()+1;
    list[i]= new CAUHOI();
    boolean check= true;
    do{
    check= true;
    System.out.println("Nhap ma thi sinh: ");
    list[i].setMaTS(CacHamChung.nhapInt());
    for(int j=1 ; j<=ch.getSL() ; j++){
    if(list[i].getMaTS()== list[j].getMaTS()){
    check= false;
    System.out.println("Ma sinh vien da ton tai !");
    }
    }
    }while(!check);
    System.out.println("Nhap ten thi sinh: ");
    list[i].setTenTS(CacHamChung.nhapString());
    System.out.println("Nhap ngay sinh thi sinh (dd-mm-yy): ");
    list[i].setNgaySinh(CacHamChung.nhapString());

    list[i].setTongDiem(list[i].getDiem1(), list[i].getDiem2() , list[i].getDiem3());
    ghiFile(list[i]);
    }
    public void hienThi(CAUHOI t){
    System.out.println("");
    System.out.println("Ma thi sinh : "+t.getCH());
    System.out.println("Ten thi sinh : "+t.getTL());
    System.out.println("Ngay sinh thi sinh: "+t.getCD());

    }*/
    }

    public class Trac_nghiem {
    public static final int MAX= 100;
    // public static CAUHOI ch =new CAUHOI();
    // public static CAUHOI []cautn = new CAUHOI[MAX];
    public static int socau = 0;
    public static int socaudung = 0;

    static char nhapcautraloi() throws Exception{
    char c;
    do {
    DataInputStream buf=new DataInputStream(System.in);
    c =((char)buf.read());
    c=Character.toUpperCase(c);
    } while (c ‘D’);
    // textattr(2);
    System.out.printf(“%c”, c);
    // int i=c – ‘A';
    return (char)(c – ‘A’);

    }

    static void tracnghiem() throws Exception{
    CAUHOI ch =new CAUHOI();
    CAUHOI []cautn = new CAUHOI[MAX];
    int cauhientai= 0;
    int i;
    char c;

    do {
    System.out.printf(“%s\n\r”, cautn[cauhientai].cauhoi);
    cautn[cauhientai]=new CAUHOI();
    for (i=0; i<4; i++)
    System.out.printf("\r%c. %s \t", i+'A', cautn[cauhientai].traloi[i]);
    System.out.printf("\n\r\n\rChon cau : ");
    c = nhapcautraloi();
    if (c == cautn[cauhientai].caudung) {
    System.out.printf("\n\rDung roi!\n");
    Thread.sleep(100);//sleep for 1000 ms
    socaudung ++;
    }
    cauhientai++;
    } while (cauhientai<socau);
    }

    public static void main(String[] args)throws Exception {
    CAUHOI ch =new CAUHOI();
    CAUHOI []cautn = new CAUHOI[MAX];
    int n, m=0, i, j, k;
    String line;
    StringTokenizer st;
    String filename="C:\\in.txt";
    System.out.printf("\nNhap ten file :%S\n",filename);

    FileInputStream inf=new FileInputStream(filename);
    Scanner scan = new Scanner(System.in);
    Scanner input=new Scanner(inf,"UTF-8");

    try {
    m=18;
    socau =m/6;

    for (i=0; i<socau; i++) {

    line = input.nextLine();
    cautn[i].cauhoi =line;
    ///////////////////////// e khong biet cho nay////////////////////////////////////////////////////////
    cautn[i]= new CAUHOI();
    // System.out.println(""+line);
    for (j=0; j<4; j++) {
    line = input.nextLine();
    // System.out.println("tl"+j+' '+line);
    st = new StringTokenizer(line);
    cautn[i].traloi[j] =st.nextToken();
    }
    cautn[i].caudung = Integer.parseInt(input.nextLine());
    }
    inf.close();
    input.close();
    } catch (Exception e) {
    e.printStackTrace();
    System.out.println("Error during read file " + e);
    }
    tracnghiem();
    System.out.printf("\n\r\n\rKet qua : ");
    System.out.printf("%.2f", (float)socaudung*10 / socau);
    }
    }

  402. NHAT said

    e chay chi ra 1 cau trac nghiem cuoi cung???? thay chi gium em
    \\\\

  403. Long Nguyen said

    Em chào thầy! Hiện em đang làm một java application đọc dữ liệu từ file excel và export dữ liệu ra file excel. Chương trình của em vẫn chạy tốt trên eclipse. Khi ấn nút export thì dữ liệu vẫn được generate ra file excel. Nhưng khi build ra file JAR để chạy trực tiếp thì không thể generate ra file excel được. Thầy có thể giải thích giúp em được không?

  404. Long said

    Em chào thầy ạ
    Em tao 1 JTabbedPane. Tren JTabbedPane co cac JScrollPane va em add JTextArea vao JScrollPane
    Cho em hoi lam sao ta co the lay duoc doi tuong JTextArea tu JTabbedPane
    em lam JScrollPane src = (JScrollPane)tab.getSelectedComponent(); //tab la JTabbedPane lam sao de lay duoc cai JTextArea trong src vay thay giup em voi
    Em cảm ơn thầy

  405. Võ Văn Hải said

    Đó là do khi build file jar em không có các thư viện đính kèm.

  406. Võ Văn Hải said

    “Em tao 1 JTabbedPane. Tren JTabbedPane co cac JScrollPane va em add JTextArea vao JScrollPane
    Cho em hoi lam sao ta co the lay duoc doi tuong JTextArea tu JTabbedPane
    em lam JScrollPane src = (JScrollPane)tab.getSelectedComponent(); //tab la JTabbedPane lam sao de lay duoc cai JTextArea trong src vay thay giup em voi”

    //tab là JTabbedPane
    JScrollPane pane=(JScrollPane)tab.getSelectedComponent();
    JViewport vp=pane.getViewport();
    int count=vp.getComponentCount();
    for (int i = 0; i < count; i++) {
    	Component com=vp.getComponent(i);
    	if(com instanceof JTextArea){
    		JTextArea ta=(JTextArea)com;
    		//System.out.println(ta.getText());
    	}
    }
    
  407. nguyen kim said

    cho mình hỏi. Mình muốn tạo một cái textbox, khi nhập một số vào thì nó sẽ hiện ra số textbox tương ứng với số vừa nhập. không cần nút submit. vì là người mới làm quen với java. mong mọi người giúp đỡ.

  408. Võ Văn Hải said

    Bắt sự kiện KeyListener, thế thôi.

  409. nam said

    Thầy cho em hỏi muốn hiện chữ @ trong j2me thì làm thế nào? Em viết nó ra nhưng khi chay thì nó không hiện.

  410. NgocYen T Dang said

    Hi thay Hai,
    Lam sao minh leave cells with a blank space, but we use nested for loop do thay. Thay co the tra loi cho em som ko thay.
    Thank you very much

  411. thuhien said

    A Hải ơi cho e hoi ti, E gio mới bât đầu làm quen với j2me, e muốn viết 1 chương trình thu thập dữ liệu của cái mobile rồi send đến server mình. A có thể hướng dẫn e tí được ko? Hiện tại e đang rất cần, mong a giúp đỡ.Cảm ơn A trước.

  412. Tuan Nguyen said

    Em đang viết chương trình từ điển , khi tìm được 1 từ ,nhưng vị trí của nó trong list không nằm trong khu vực hiển thị của list thì scrollpane ko tự động cuốn xuống để ta nhìn thấy từ đó.Vậy em phỉa làm thế nào để scrollpane tự động chạy xuống dứoi ,mong các bác chỉ giáo ạ.Em cảm ơn nhiều

  413. Lê Nguyễn said

    Em đang làm đồ án về chương trình chia sẻ file p2p, viết bằng java. Thầy có thể cho em xin source code bài này được không? Thật sự em đang rất cần. Mong thầy giúp

  414. Lê Nguyễn said

    Chào thầy.Thầy có thể cho em xin source code java bài chia sẻ file qua mạng p2p được không. Em đang rất cần. Mong thầy giúp

  415. Võ Văn Hải said

    Muốn JList cuộn đến phần tử mà bạn chọn theo câu lệnh như sau

    lst.setSelectedValue(xxx, true); 

    thì trong quá trình tạo JList bạn phải thiết lập thuộc tính Autoscrolls thành true như sau:

    lstWords.setAutoscrolls(true); 
  416. Võ Văn Hải said

    “Lam sao minh leave cells with a blank space, but we use nested for loop do thay. Thay co the tra loi cho em som ko thay.”
    Không hiểu em đang hỏi gì!

  417. Lê Lâm said

    Thầy ơi, em làm ứng dụng với RMI,Em muốn xuất báo cáo tại client dạng pdf thì phải làm sao ạ? em query dử liệu từ server về vào 1 vector

  418. Võ Văn Hải said

    “Thầy ơi, em làm ứng dụng với RMI,Em muốn xuất báo cáo tại client dạng pdf thì phải làm sao ạ? em query dử liệu từ server về vào 1 vector”
    Sau khi lấy về em sử dụng thư viện nào đó để export ra PDF. Thư viện tôi hay dùng là iText.

  419. Hùng said

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.event.*;
    import java.io.FileInputStream;

    public class BaiTongHop1 extends JFrame{
    //vung 2

    JLabel lbNoiDung = new JLabel(“Noi Dung”);

    JTextField tfNoiDung = new JTextField();

    DefaultListModel dlDuLieu = new DefaultListModel();
    JList lstDuLieu = new JList(dlDuLieu);

    JButton btLuu= new JButton(“Luu”);
    JButton btThoat = new JButton(“Thoat”);

    public BaiTongHop1 (){
    super(“BaiTongHop1″);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Container c= this.getContentPane();

    //vung 3
    c.setLayout(new BorderLayout());
    JPanel p1= new JPanel(new BorderLayout());
    p1.add(lbNoiDung,BorderLayout.WEST);
    p1.add(tfNoiDung,BorderLayout.CENTER);

    JPanel p2= new JPanel(new FlowLayout());
    p2.add(btLuu);
    p2.add(btThoat);

    JScrollPane sp1 = new JScrollPane(lstDuLieu);

    c.add(p1,BorderLayout.NORTH);
    c.add(sp1,BorderLayout.CENTER);
    c.add(p2,BorderLayout.SOUTH);

    //vung 4
    tfNoiDung.addActionListener(new XuLyNoiDung_Enter());
    lstDuLieu.addListSelectionListener(new XuLyList_Select());

    btLuu.addActionListener(new XuLyLuu());

    //vung 5:

    setSize(300,150);
    setVisible(true);

    }
    //vung 6

    class XuLyNoiDung_Enter implements ActionListener{
    public void actionPerformed(ActionEvent e){
    dlDuLieu.addElement(tfNoiDung.getText());
    tfNoiDung.selectAll();
    }

    }

    class XuLyList_Select implements ListSelectionListener{
    public void valueChanged(ListSelectionEvent lse){
    String tmp = (String)lstDuLieu.getSelectedValue();
    tfNoiDung.setText(tmp);
    }

    }

    pw.println(tmp);
    }
    pw.close();

    }catch(FileNotFoundException fnfe){}
    }
    }*/

    class XuLyLuu implements ActionListener{
    public void actionPerformed(ActionEvent e){
    JFileChooser fchooser = new JFileChooser();
    if(fchooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
    {
    String str=fchooser.getSelectedFile().getAbsolutePath();
    try {
    FileInputStream fis=new FileInputStream(str);
    Scanner input=new Scanner(fis);
    String s=””;
    while(input.hasNext())
    {
    s+=input.nextLine()+”\n”;
    lstDuLieu.setListData(s);
    }

    } catch (FileNotFoundException e1) {

    e1.printStackTrace();
    }
    }

    }

    }

    public static void main(String[] args){
    new BaiTongHop1();
    }
    //7
    }

    Thầy ơi cho em hỏi sao cái nút Lưu của em đó, muốn đọc file load dữ liệu lên JList ko dc vậy? Em đang làm khi click nút lưu nó sẽ load dữ liệu lên listbox, thầy giúp em nha

  420. phuong said

    Em chào thầy !!!
    Thầy ơi, em được giao làm đề tài “xây dựng chương trình quản lý cuộc gọi đến và tin nhắn trên điện thoại di động” em vẫn chưa biết làm thế nào. Thầy có thể cho em biết em nên tìm hiểu về cái gì, và cách thức làm như thế nào được không ạ ?
    Rất mong thầy giúp đỡ em.
    Các bạn nếu biết hãy giúp mình nhé!!!

  421. Dinh said

    Thầy ơi giúp em viết đoạn code về truyền file giữa các client với nhau đi. Em viết hoài mà không được

  422. tuan manh said

    Thưa thầy,em mong thầy chỉ giúp em cái lỗi này là lỗi gì ạ

    init:
    deps-clean:
    Updating property file: A:\WORK\Source code\ProcessGateway\build\built-clean.properties
    A:\WORK\Source code\ProcessGateway\nbproject\build-impl.xml:900: The following error occurred while executing this line:
    A:\WORK\Source code\ProcessGateway\nbproject\build-impl.xml:926: The following error occurred while executing this line:
    java.io.FileNotFoundException: C:\Users\Baolink\Documents\NetBeansProjects\ws\build.xml (The system cannot find the path specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.(FileInputStream.java:106)
    at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:268)
    at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:177)
    at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:82)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:393)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
    at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:281)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154)
    BUILD FAILED (total time: 0 seconds)

    Em cảm ơn thầy nhiều ạ.

  423. Cho em hỏi cái này được không ạ? Em làm 1 project netbeans, trong đó em có kết nối với cơ sở dữ liệu MySQL hoặc SQLServer 2005, vậy em hỏi cách đóng gói thành 1 file java hoặc exe trong đó có sắn driver và database khi copy sang máy khác chạy được luôn ạ. Em cảm ơn

  424. Em cần gấp lắm ạ, hay em gửi project và database cho thầy thầy đóng gói giúp em với ạ, em cảm ơn.

  425. Võ Văn Hải said

    clean and build project lại thử

  426. Võ Văn Hải said

    Thầy ơi giúp em viết đoạn code về truyền file giữa các client với nhau đi
    Thử 1 đoạn dùng UDP thử:

    void SenderSample(final String filename)throws Exception{
    		final DatagramSocket socket=new DatagramSocket(9876);
    		new Thread(new Runnable() {
    			public void run() {
    				try {
    					byte[] buff = new byte[512];
    					BufferedInputStream bi = new BufferedInputStream(
    							new FileInputStream(filename));
    					int x = -1;
    					InetAddress add = InetAddress.getByName("localhost");
    					int port = 9999;
    					DatagramPacket packet = null;
    					do {
    						x = bi.read(buff);
    						if (x != -1) {
    							packet = new DatagramPacket(buff, buff.length, add,
    									port);
    							socket.send(packet);
    							Thread.sleep(1000);
    						}
    					} while (x != -1);
    					//gui tin hieu ket thuc
    					buff = "@@@EXIT@@@".getBytes();
    					packet = new DatagramPacket(buff, buff.length, add, port);
    					socket.send(packet);
    				} catch (Exception e) {
    					e.printStackTrace();
    
    				}
    			}
    		}).start();
    	}
    

    void receiveExample(String filename)throws Exception{
    		FileOutputStream fos=new FileOutputStream(filename);
    		DatagramSocket socket=new DatagramSocket(9999);
    		byte []buff=new byte[512];
    		DatagramPacket packet=null;
    		while(true){
    			buff=new byte[512];
    			packet=new DatagramPacket(buff, buff.length);
    			socket.receive(packet);
    			String sign=new String(packet.getData()).trim();
    			System.out.println(sign);
    			if(sign.equals("@@@EXIT@@@"))
    				break;			
    			fos.write(packet.getData());
    		}
    		fos.flush();
    		fos.close();
    	}
    
  427. ” clean and build project lại thử”
    Em không hiểu thầy đang trả lời ai ạ, như thế chỉ tạo đc file jar ko có csdl, copy sang máy khác ko chạy được ạ.

  428. chi said

    chào thầy. cho e hỏi về cách xử lý tăng số lượng thích trong jsp & servelet e làm sao ạ.
    code e sao chi tăng duy nhất 1 lần khi e click nhiều lần vào nút thích

    package vn.edu.hcmuaf.fit.eshop.modules.display.ctrl;

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import vn.edu.hcmuaf.fit.eshop.ctrl.servlets.ModuleAction;

    public class thich extends ModuleAction{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
    IOException {

    int i=0;
    System.out.println(i + “dau”);
    String thich=req.getParameter(“thich”);
    System.out.println(“tick thich”+thich.length());
    if(thich.length()>0)
    i=i+1;

    System.out.println(“chi so cua i ” +i);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    // TODO Auto-generated method stub

    }

    }

  429. Võ Văn Hải said

    “cách xử lý tăng số lượng thích trong jsp & servelet”
    Em phải lưu biến count vào trong application scope rồi load ra, tăng lên khi request tới

  430. Võ Văn Hải said

    To Nghiêm Việt An:
    sorry.
    File cơ sở dữ liệu access à? Nếu vậy thì em copy theo chứ sao đưa nó vào file jar được.

  431. “File cơ sở dữ liệu access à? Nếu vậy thì em copy theo chứ sao đưa nó vào file jar được.”
    Dạ không database là MySQL ạ, cop theo thì cấu hình kiểu j đc ạ, em dùng luôn java Desktop application với database nó cấu hình luôn cho mình nên ko biết nó cấu hình kiểu j để cấu hình lại ạ.

  432. Lê Duy Tân said

    Thưa thầy cho em hỏi có thư viện nào trong java dùng để lấy địa chỉ ip giống như thế này:
    My IP Address (Public, External or WAN IP Address)
    123.20.133.75

    My Internal IP Address (LAN or Router IP Address)
    192.168.0.102

    My Hostname (DNS Lookup)
    123.20.133.75

    và thư viện nào dùng để do địa chỉ ip ra tên thành phố và quốc gia của ip đó!
    Em cám ơn thầy nhiều!

  433. nhoc said

    Chào thầy! thầy có thể demo một chương trình xuất ra một file word hay excel từ Jtable (cơ sở dữ liệu lấy từ accsess) được ko ạ ?

  434. Dương Dũng said

    Thầy cho em hỏi để đặt phím tắt cho Jbutton trong netbeans là dạng Ctrl+B thì làm thế nào ạ ?
    ý thứ 2 : là trong netbeans tại sao làm jLabel1.setBackground(Color.red); mà vẫn không hiển thị màu nền của lable mặc dù em đã cho đường viền của lable rộng lên rồi

  435. Võ Văn Hải said

    “thầy có thể demo một chương trình xuất ra một file word hay excel từ Jtable (cơ sở dữ liệu lấy từ accsess) được ko ạ ?”
    Bạn có thể xem trang này nhé: Export Excel

  436. Võ Văn Hải said

    À. Thì ra thế!
    Nếu là MySQL thì em cấu hình làm server và application của em kết nối đến. CÒn nếu em triển khai trên 1 máy nào đó thì em sinh script/backup sau đó triển khai trên máy đích thì chạy script/ restore backup đó.

  437. nhoc said

    cảm ơn thầy nhiều. ct demo hay lắm

  438. java said

    Em làm cờ caro, em kéo thả các button của bàn cờ từ button 17 đến jbutton241 giờ làm sao để em đưa các button kia vào một mảng và khi clinet1 click nó setIcon là “x” và client2 setIcon là “0” ah thầy?

  439. Chào anh Hải,cho em hỏi về cái LiveTable và BaseTable không ? Anh có tài liệu nào về 2 phần này không có thể share cho em không.

  440. Nguyễn Thuyên Long said

    Dạ thưa thầy. Thầy cho e hỏi một vấn đề này nha thầy. Em build file jar trong netbean nhưng sao khi chạy file jar nay thì e ko ket noi duoc database vay thay? mac dù chạy file class trong netbean thi thao tác và kết nối database rat ngon lanh. Vậy minh chi build ra file jar rùi chạy hay mình còn phải tạo file nào nữa để kết nối với database vậy thầy. Em dùng netbean, thao tác database bằng Hibernate trong java swing. Em cám ơn thầy.

  441. Trương Tuấn said

    Thưa Thầy cho em hỏi:
    – Làm sao để tạo băng thông cho server để truyền file từ server qua Client
    – và băng thông cho Client nhận từ server

    Em Cám ơn Thầy!

  442. qanh said

    Thưa thầy em có làm một ứng dụng RMI viết bằng eclipse khi chạy không có tạo file *_stub thì chạy bình thường không có lỗi nhưng khi biên dich ra file stub thì nó báo lỗi thế này:

    Security manager installed.
    java.security.AccessControlException: access denied (“java.net.SocketPermission” “127.0.0.1:1099″ “connect,resolve”)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
    at java.security.AccessController.checkPermission(AccessController.java:555)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)

    Khi đem mấy file class chạy bằng cmd thì nó báo là NoClassDefFoundEror:/net/sf/jasperreports/engine/JasperPrintf. Ứng dụng của e có sử dụng jasperreport khi chạy cmd nó không hiểu thư viện phải không thấy.Nếu thê thì thầy cho e hướng giải quyết được không ạ.

    Cám ơn thầy!!!!!!!!

  443. Võ Văn Hải said

    EM thử tạo file policy cũng như sign file jar của em thử xem. (xem ở 1 bài trong blog này).

  444. Võ Văn Hải said

    em dùng GridLayout để sắp xế các ô, cho các button lắng nghe listener và viết thôi.

  445. Trí Nguyễn said

    Cho em dùng lenh getDate() để lấy ngày tháng ra hiển thị nhưng sao bị lỗi là sớm hơn 2 ngày so với trong SQL , mọi thao tác đều bình thường chỉ lầy ra hiển thị là bị lỗi đó

  446. Nguyễn hà said

    em chào thầy. Thầy có thể giải thích giúp em đoạn code này với ah. em đọc mãi mà chẳng hiểu.thầy có nói rõ từng đoạn dùng để làm gì?
    Em cảm ơn thầy!

  447. Nguyễn hà said

    em quên.đoạn code này ah.

    public class BarChart extends JPanel implements ActionListener {
    BorderLayout borderLayout1 = new BorderLayout();
    Color[] colors = {Color.red, Color.yellow, Color.green, Color.blue,
    Color.cyan, Color.magenta, Color.orange, Color.pink,
    Color.darkGray};
    private ChartModel model;

    public BarChart() {
    this.setLayout(borderLayout1);
    }

    public void paintComponent(Graphics g) {
    super.paintComponent(g);

    if (model == null) return;

    String[] dataName = model.getDataName();
    double[] data = model.getData();

    // Find the maximum value in the data
    double max = data[0];
    for (int i=1; i<data.length; i++)
    max = Math.max(max, data[i]);

    int barWidth = (int)((getWidth() – 10.0) / data.length – 10);
    int maxBarHeight = getHeight() – 30;

    g.drawLine(5, getHeight() – 10, getWidth() – 5, getHeight() – 10);

    int x = 15;
    for (int i = 0; i < data.length; i++) {
    g.setColor(colors[i % colors.length]);
    int newHeight = (int)(maxBarHeight * data[i] / max);
    int y = getHeight() – 10 – newHeight;
    g.fillRect(x, y, barWidth, newHeight);
    g.setColor(Color.black);
    g.drawString(dataName[i]+"-"+String.valueOf(data[i])+"%", x, y – 7);
    x += barWidth + 10;
    }
    }

    public void setModel(ChartModel newModel) {
    model = newModel;
    model.addActionListener(this);
    }

    public ChartModel getModel() {
    return model;
    }

    public void actionPerformed(ActionEvent e) {
    repaint();
    }
    }

  448. khi said

    thầy ơi..thầy có thể up một số bài demo J2EE sử dụng tool eclipse không ạ. Thầy có tài liệu nào về struts thì up giúp em với nhé. Em mới tìm hiểu nên chưa hiểu rõ cho lắm.

  449. Đặng Quốc Đạt said

    Em chào thầy,

    Em đang xây dựng 1 phần mềm quản lý phòng mạch tư sử dụng công nghệ Hibernate. Em đang gặp vấn đề lớn khi không biết cách cấu hình server như thế nào để các máy con có thể truy xuất đến cơ sở dữ liệu đặt ở máy chủ. Nếu ko dùng Hibernate mà viết code thuần thì em đã làm được, nhưng công nghệ hibernate sử dụng cấu hình bằng xml và tự hỗ trợ cơ chế kết nối đến database. Em ko nghĩ ra ý tưởng nào để có thể làm được điều này. Mong thầy giúp đỡ em

    Thầy có thể vui lòng gởi tài liệu hoặc hướng dẫn khái quát cho em được ko ạ. Em xin chân thành cảm ơn

  450. Võ Văn Hải said

    Em dùng Hibernate version nào? Mới nhất người ta dùng annotaion dể mapping mà. EM xem lại coi!

  451. assassin said

    Chào Thầy:
    Em đang làm 1 bài project game có tên Know your world, người chơi cần chọn lựa tên nước va tên thủ đô sao cho đúng.
    Em đã làm được gần phân nửa bài nhưng em làm đến sự kiện load tên nước và thủ đô trong file array lên button gặp rắc rối thầy có thể tư vấn dùm em được khg ah. Em cám ơn thầy.

  452. phung thi bich phuong said

    Em chào thầy!!!!! Em đang làm eproject ạ. Trong đó có 1 phần mà em phải dùng hàm tính toán trong sql. Vậy làm sao để đẩy được hàm đó trên table trên form display trên netbean được hả thầy?

  453. tuvq said

    Em chào thầy!
    Em đang làm việc cho 1 cty chuyên phần mềm quản lý bệnh viện. Hiện tại cty em đang dùng công nghệ spring mvc, oracle 11g. Nhưng có vấn đề là kết nối đơn thuần và không dùng store để thực thi dẫn đến việc khi nhiều người dùng cùng thao tác thì tranh chấp bản ghi trong csdl (hiện tại em đang khắc phục là dùng thread ). Em muốn nâng cấp công nghệ lên spring + hibernate thầy có source demo nào về spring + hibernate kết nối với oracle không ạ. thấy có thể gửi cho em nghiên cứu được không ạ.

    Em xin chân thành cảm ơn

  454. Thưa thầy, em mới bắt đầu tự học Java và học trọng tâm vào JavaSwing! File kèm theo là 1 chuỗi các giao diện liên tiếp: http://www.mediafire.com/?vaibiixhmjraa2q. Em muốn hỏi thầy làm sao có thể thiết kế các giao diện như trên và xuất chúng ra pdf như thế!
    Em xin chân thành cảm ơn!

  455. Công said

    Em chào thầy ! Tình cờ em ghé thăm blog của thầy em thấy, thầy rất nhiệt tình và sẵn sàng giúp đỡ.
    hôm nay em xin nhờ thầy giúp em 1 chuyện : Em đang học JAVA tới phần CMP và BMP cùng với Mysql.
    nhưng em thật tình ko biết kết nối csdl với nhau làm sau nữa.
    Mong thầy làm cho em 1 Demo thật đơn giản và kèm theo hình ảnh của từng bước để em có thể tìm hiểu từ bước này đến bước kia.
    Em xin chân thành cảm ơn

  456. 31251992 said

    Thầy ơi.em muốn làm một giao diện trong net bean mà lấy dữ liệu từ 1 file txt(kiểu như là giao diện hiển thị ,nhập thêm,xóa 1 sinh viên nòa đó).Thầy giúp em với ạ.

  457. đình khải said

    em chào thầy:
    em thực hiện 1 phần mềm, và xây dựng tầng intern của em bằng EJB3 với server jboss với database oracle! nhưng phần mềm của em có nhiều gói intern, mỗi intern 1 database vì vậy khi start nó chiếm dung lượng ram quá! 1 intern tốn 400mb!
    thầy có cách nào để 1 intern sử dụng nhìu database ko? với cách này em làm với mysql thì ok!
    còn oracle không được! mong thầy giúp đỡ em

  458. error: class hello is public, should be declared in a file named hello.java
    public class hello
    Chào thầy, em mới học java nên còn rất lúng túng, bài tập ban đầu giải thuật thì chưa có gì nhiều nhưng hay có 1 số lỗi mà không biết lỗi gì. ngay từ đầu khi em chạy 1 chương trình đơn giản trên máy của mình đã gặp lỗi :error: class hello is public, should be declared in a file named hello.java
    dù trên máy bạn đã chạy được
    thầy có thể giải thích lỗi và cho em cách khắc phục được không ah.
    cám ơn thầy nhiều.

  459. Along said

    Em nhờ thầy giúp e bt java này:

    Vẽ 1 hình chữ nhật. Sau đó có thể chọn nó để di chuyển, thay đổi kích thước.

    Cám ơn thầy!

  460. Hau Tran said

    Chào thầy,
    Hiện tại em đang tìm hiểu về SwingX nhưng em tìm mãi nhưng không tìm được nhiều, chủ yếu chỉ nói sơ qua về nó thôi, thầy có tài liệu liên nói về nó không ah, hoặc địa chỉ cho em tìm hiểu được không thầy ? Em chân thành cảm ơn thầy .

  461. Trần Tân Trí said

    Em chào Thầy!
    Em có 1 Class SinhVien gồm: ID,Name,Address,Phone và đã làm các thuộc tính get,set,…
    1 Class ghi file có tên là Myfile.
    Và 1 Class Jtab có nội dung như sau:
    public class Jtab extends JFrame implements Serializable{
    Myfile my=new Myfile();
    public ArrayListlist=new ArrayList();
    public Jtab(String title){
    setTitle(title);
    }
    public void doshow(){
    list=(ArrayList) my.doc(“D:\\Ghi\\file.data”);
    setSize(500, 500);
    setLocationRelativeTo(null);
    addcontrol();
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setResizable(false);
    setVisible(true);
    }
    public void addcontrol(){

    JPanel jp=new JPanel();
    jp.setLayout(new BorderLayout());
    JPanel jpnorth=new JPanel();
    JLabel jlbnorth=new JLabel(“Phương Pháp Layout Jtable”);
    jpnorth.add(jlbnorth);
    jp.add(jpnorth,BorderLayout.NORTH);
    Font ft=new Font(“Arilal”,Font.BOLD,25);
    jlbnorth.setFont(ft);
    jlbnorth.setForeground(Color.BLUE);

    JPanel jpsouth=new JPanel();
    jp.add(jpsouth,BorderLayout.SOUTH);
    JButton btthem=new JButton(“Thêm SV”);
    JButton btxoa=new JButton(“Xóa Trắng”);
    JButton btthoat=new JButton(“Thoát”);
    jpsouth.add(btthem);
    jpsouth.add(btxoa);
    jpsouth.add(btthoat);
    Border borsouth=BorderFactory.createLineBorder(Color.RED);
    TitledBorder titlebor=new TitledBorder(borsouth,”Chọn công việc”);
    jpsouth.setBorder(titlebor);

    JPanel jpcenter=new JPanel();
    jpcenter.setLayout(new BoxLayout(jpcenter,BoxLayout.Y_AXIS));
    jp.add(jpcenter,BorderLayout.CENTER);
    JLabel jlba=new JLabel(“Nhập MSSV:”);
    JLabel jlbb=new JLabel(“Nhập Tên SV:”);
    JLabel jlbc=new JLabel(“Nhập Địa Chỉ SV:”);
    JLabel jlbd=new JLabel(“Nhập Số điện thoại SV:”);
    final JTextField txta=new JTextField(15);
    final JTextField txtb=new JTextField(15);
    final JTextField txtc=new JTextField(15);
    final JTextField txtd=new JTextField(15);
    JPanel jpa=new JPanel();
    JPanel jpb=new JPanel();
    JPanel jpc=new JPanel();
    JPanel jpd=new JPanel();
    jpa.add(jlba);
    jpa.add(txta);
    jpb.add(jlbb);
    jpb.add(txtb);
    jpc.add(jlbc);
    jpc.add(txtc);
    jpd.add(jlbd);
    jpd.add(txtd);
    jpcenter.add(jpa);
    jpcenter.add(jpb);
    jpcenter.add(jpc);
    jpcenter.add(jpd);
    jlba.setPreferredSize(jlbd.getPreferredSize());
    jlbb.setPreferredSize(jlbd.getPreferredSize());
    jlbc.setPreferredSize(jlbd.getPreferredSize());
    final DefaultTableModel de=new DefaultTableModel();
    JTable tb=new JTable(de);
    JScrollPane sc=new JScrollPane(tb);
    de.addColumn(“MSSV”);
    de.addColumn(“Họ và Tên”);
    de.addColumn(“Địa chỉ”);
    de.addColumn(“Phone”);
    jpcenter.add(sc);
    tb.setForeground(Color.WHITE);
    tb.setBackground(Color.BLACK);
    if(list!=null){
    for (int i = 0; i < list.size(); i++) {
    SinhVien sv=list.get(i);
    de.addRow(new String[]{sv.getId(),sv.getName(),sv.getAddress(),sv.getPhone()});
    }
    }
    btthem.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub
    de.addRow(new String[]{txta.getText(),txtb.getText(),txtc.getText(),txtd.getText()});
    txta.setText("");
    txtb.setText("");
    txtc.setText("");
    txtd.setText("");
    txta.requestFocus();
    SinhVien sv=new SinhVien(txta.getText(),txtb.getText(),txtc.getText(),txtd.getText());
    list.add(sv);
    my.ghi(list,"D:\\Ghi\\file.data");
    }
    });

    btxoa.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    txta.setText("");
    txtb.setText("");
    txtc.setText("");
    txtd.setText("");
    txta.requestFocus();
    }
    });
    btthoat.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    int rec=JOptionPane.showConfirmDialog(null, "Bạn muốn thoát?","WARNING",JOptionPane.YES_NO_OPTION);
    if(rec==JOptionPane.YES_OPTION){

    System.exit(0);
    }
    }
    });

    Container con=getContentPane();
    con.add(jp);
    }
    }

    Em đã làm bài này 2 ngày rồi mà không tìm ra cách lưu được xuống file.data rồi đọc file đó lên Jtable.
    Em nghĩ mình sai lúc đọc dữ liệu lên!
    Mong Thầy chỉ dẫn ạ! Cảm ơn Thầy.

  462. Thuong said

    Thay, e moi lam viec voi java, Netbean voi Eclips co khac nhau ve cu phap khong thay

  463. Võ Văn Hải said

    Cái quan trọng là chỗ ghi file của bạn ra sao thì bạn không post lên.
    Kỹ thuật đơn giản nhất là bạn serialize cái arraylist là xong. tìm trong blog nay có cái ví dụ đấy!

  464. Võ Văn Hải said

    “Hiện tại em đang tìm hiểu về SwingX nhưng em tìm mãi nhưng không tìm được nhiều, chủ yếu chỉ nói sơ qua về nó thôi, thầy có tài liệu liên nói về nó không ah, hoặc địa chỉ cho em tìm hiểu được không thầy”
    Xem ở đây: http://swingx.java.net/

  465. Võ Văn Hải said

    “error: class hello is public, should be declared in a file named hello.java”
    Trong 1 file .java có thể chứa nhiều class nhưng tên file phải là tên của lớp có visibility modifier là public.
    Theo lỗi thì lớp hello phải có tên file là hello.java.

  466. Phan Thanh Hùng said

    Em đang viết lệnh cho cái menuItem là Xem thời khóa biểu.Hàm e đang xây dựng là showAll() gọi từ hàm Lớp học phần để xử lý..Nhưng vẫn chưa xử lý được thầy có thể góp ý giúp e được không?
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    //—————————————————————//
    public class Daotao extends JFrame implements ActionListener
    {
    JMenuItem mDangnhap= new JMenuItem(“Dang nhap”);
    JMenuItem mDoimatkhau= new JMenuItem(“Doi mat khau”);
    JMenuItem mXemdiem= new JMenuItem(“Xem diem”);
    JMenuItem mTKB= new JMenuItem(“Xem thoi khoa bieu”);
    JPanel pwPane, logPane;
    private SinhVien sv;
    private static JSplitPane twoPane;
    private JTextField txtMasv=new JTextField(12);
    private JPasswordField txtMatkhau=new JPasswordField(12);
    private JSplitPane mainPane,dkPane;
    private JButton cmdDangnhap = new JButton(“Dang nhap”);
    private JButton cmdThoat = new JButton(“Thoat”);
    private JButton cmdDongy = new JButton(“Dong y”);
    private JButton cmdHuybo = new JButton(“Huy bo”);
    //—————————————————————//
    public Daotao()
    {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Chuong trinh dung lai khi tat
    createMenu();
    logPane=createDangnhap();
    pwPane=createDoimatkhau();
    JPanel logo=new JPanel();
    logo=createLogoPane();

    mainPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, createLogoPane(), createDangnhap());
    mainPane.setBackground(new Color(255,255,255));
    mainPane.setDividerSize(0);

    setContentPane(logPane);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(mainPane,BorderLayout.CENTER);
    setSize(500,450);
    show();

    }

    //—————————————————————//

    public JMenuBar createMenu(){
    JMenuBar menuBar=new JMenuBar();
    setJMenuBar(menuBar);
    setTitle(“Quan li dao tao”);
    JMenu sMenu= new JMenu(“He thong”);
    menuBar.add(sMenu);
    menuBar.add(new JMenu(“Tro giup”));
    mDangnhap.addActionListener(this);
    mDoimatkhau.addActionListener(this);
    sMenu.add(mDangnhap);
    sMenu.add(mDoimatkhau);
    sMenu.add(mXemdiem);
    sMenu.add(mTKB);
    mDoimatkhau.setEnabled(true);
    mXemdiem.setEnabled(false);
    mTKB.setEnabled(false);
    return menuBar;
    }

    //—————————————————————// //Day la hàm showall e nói
    public JScrollPane showAll()throws Exception
    {
    getContentPane().setLayout(null);
    JPanel pn=new JPanel(new GridLayout(10,3,5,5));
    Vector v=Lophocphan.XemTKB(“101250531215″,111);
    for (int i=0; i<v.size();i++ )
    {
    Lophocphan lhp=(Lophocphan)v.elementAt(i);

    pn.add(lhp.toSwing(),BorderLayout.CENTER);
    }
    JScrollPane js = new JScrollPane(pn);
    js.add(pn);
    js.setViewportView(pn);
    return js;
    }
    //—————————————————————//
    public void actionPerformed(ActionEvent e){
    Object s=e.getSource();

    if(s==mDangnhap)
    setContentPane(logPane);
    else
    {
    if(s==mDoimatkhau)
    setContentPane(pwPane);

    }
    pack();
    show();

    }
    //—————————————————————// //Đây là hàm xử lý dữ liệu ,nhưng vẫn chưa được

    public MenuItem mTKB()
    {

    MenuItem mi=new MenuItem("");

    //mi.setPreferredSize(new Dimension(50,30));
    mi.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    Object s=e.getSource();
    if(s==cmdDangnhap)
    {
    try
    {
    twoPane.setRightComponent(showAll());
    }
    catch(Exception ae)
    {
    System.out.println("Error: "+ae);
    ae.printStackTrace();
    }
    }
    }
    });

    return mi;
    }
    //—————————————————————//
    public JPanel createDangnhap(){
    JPanel logHead = new JPanel();
    logHead.setBackground(new Color(255,255,255));
    logHead.add(new JLabel("Dang nhap vao he thong"));

    JPanel logBody = new JPanel(new GridLayout(2,2,5,3));
    logBody.setBackground(new Color(255,255,255));
    logBody.setBorder(BorderFactory.createEmptyBorder(80,0,80,15));
    logBody.add(new JLabel("Ma sinh vien :",JLabel.RIGHT));
    logBody.add(txtMasv);
    logBody.add(new JLabel("Mat khau:",JLabel.RIGHT));
    logBody.add(txtMatkhau);

    JPanel logFoot = new JPanel();
    logFoot.add(cmdDangnhap);
    //logFoot.add(cmdThoat);

    cmdDangnhap.addActionListener(new ActionListener()//action dang nhap
    {
    public void actionPerformed(ActionEvent e)
    {
    Object obj=e.getSource();
    if(obj==cmdDangnhap)
    {
    try{
    String masv=(txtMasv.getText());
    String pw=(txtMatkhau.getText());
    SinhVien dn=sv.login(masv,pw);
    if(dn!=null)
    {
    JOptionPane.showMessageDialog(null,"Dang Nhap thanh cong!");
    mDangnhap.setEnabled(false);
    mDoimatkhau.setEnabled(true);
    mTKB.setEnabled(true);
    mXemdiem.setEnabled(true);
    show();
    }
    else
    JOptionPane.showMessageDialog(null,"Ma sinh vien hoac mat khau khong dung!");
    }catch(Exception ae){
    System.out.println("Error: "+ae);
    ae.printStackTrace();
    }
    }

    }
    });
    logFoot.add(cmdDangnhap);

    JPanel regPane=new JPanel(new BorderLayout());
    regPane.setBackground(new Color(255,255,255));
    regPane.add(logHead,BorderLayout.NORTH);
    regPane.add(logBody,BorderLayout.CENTER);
    regPane.add(logFoot,BorderLayout.SOUTH);
    return regPane;
    }
    //—————————————————————//
    public JPanel createDoimatkhau(){
    JPanel logHead = new JPanel();
    logHead.setBackground(new Color(255,255,255));
    logHead.add(new JLabel("Doi mat khau"));

    JPanel logBody = new JPanel(new GridLayout(3,2,5,3));
    logBody.setBackground(new Color(255,255,255));
    logBody.setBorder(BorderFactory.createEmptyBorder(20,5,20,15));
    logBody.add(new JLabel("Mat khau cu",JLabel.RIGHT));
    logBody.add(new JPasswordField(12));
    logBody.add(new JLabel("Mat khau moi",JLabel.RIGHT));
    logBody.add(new JPasswordField(12));
    logBody.add(new JLabel("Nhap lai mat khau",JLabel.RIGHT));
    logBody.add(new JPasswordField(12));

    JPanel logFoot = new JPanel();
    logFoot.add(cmdDongy);
    logFoot.add(cmdHuybo);

    JPanel regPane=new JPanel(new BorderLayout());
    regPane.setBackground(new Color(255,255,255));
    regPane.add(logHead,BorderLayout.NORTH);
    regPane.add(logBody,BorderLayout.CENTER);
    regPane.add(logFoot,BorderLayout.SOUTH);
    return regPane;
    }
    //—————————————————————//

    private static JPanel createLogoPane()
    {
    JPanel logoPane=new JPanel(new BorderLayout());
    logoPane.setBackground(new Color(255,255,255));
    logoPane.add(new JLabel(new ImageIcon("logotruong.jpg")));
    /*logoPane.add(logoPane,BorderLayout.NORTH);*/
    return logoPane;
    }
    //—————————————————————//

    public static void main(String[] args)
    {
    Daotao dt=new Daotao();
    dt.pack();
    dt.show();
    }
    }

    ———————-Lớp học phần —————————-
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Lophocphan
    {
    private String Malhp,TenLhp,Mahp,MaGv,Phong;
    private int Thu,Tu,Den,Hocky;
    //———————————————————————————//
    public Lophocphan(){}
    public Lophocphan(String Malhp) throws Exception
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con=DriverManager.getConnection("jdbc:odbc:DCT");

    Statement stmt=con.createStatement();
    ResultSet rs=stmt.executeQuery("Select * from Lophocphan Where Malhp='"+Malhp+"'");

    if(rs.next()){
    this.Malhp=Malhp;
    this.Mahp=rs.getString("Mahp");
    this.TenLhp=rs.getString("TenLhp");
    this.MaGv=rs.getString("MaGv");
    this.Thu=rs.getInt("Thu");
    this.Tu=rs.getInt("Tu");
    this.Den=rs.getInt("Den");
    this.Phong=rs.getString("Phong");
    this.Hocky=rs.getInt("Hocky");
    }
    else throw new Exception("Ma lop hoc phan ko hop le");
    con.close();
    }

    //———————————————————————————//
    public String getMalhp()
    {
    return Malhp;
    }
    public String getMahp()
    {
    return Mahp;
    }
    public String getTenLhp()
    {
    return TenLhp;
    }
    public String getMaGv()
    {
    return MaGv;
    }
    public int getThu()
    {
    return Thu;
    }
    public int getTu()
    {
    return Tu;
    }
    public int getDen()
    {
    return Den;
    }
    public String getPhong()
    {
    return Phong;
    }
    public int getHocky()
    {
    return Hocky;
    }
    //———————————————————————————//
    public static Vector XemTKB(String Masv,int Hocky) throws Exception
    {
    Vector tkb=new Vector(5,5);
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con=DriverManager.getConnection("jdbc:odbc:DCT");
    PreparedStatement stmt = con.prepareStatement("Select LHPSV.MaLhp from LHPSV,Lophocphan Where Lophocphan.MaLhp=LHPSV.MaLhp and Masv=? and Hocky=?");
    stmt.setString(1,Masv);
    stmt.setInt(2,Hocky);
    ResultSet rs = stmt.executeQuery();
    System.out.println(" XEM THOI KHOA BIEU");
    //System.out.println("————————————–");
    while(rs.next()) {
    String MaLhp=rs.getString(1);
    Lophocphan lhp=new Lophocphan(MaLhp);
    tkb.add(lhp);
    }
    con.close();
    return tkb;
    }
    //————————————————//
    public static Vector xemTKBGV(String MaGv,int hocKy)throws Exception{
    Vector v=new Vector(10,5);
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con=DriverManager.getConnection("jdbc:odbc:ABC");
    PreparedStatement ps=con.prepareStatement
    ("select LOPHP.MaLHP from LOPHP,LHPSV where LOPHP.MaLHP = LHPSV.MaLHP and maGV=? and hocKy=?");
    ps.setString(1,MaGv);
    ps.setInt(2,hocKy);
    ResultSet rs=ps.executeQuery();
    System.out.println("xem thoi khao bieu GV");
    while(rs.next()){
    String MaLhp=rs.getString("MaLHP");
    Lophocphan lhp=new Lophocphan(MaLhp);
    v.add(lhp);
    }
    con.close();
    return v;
    }
    //——————————————————
    public Lophocphan[] lietke(String Mahp, String Hocky)
    {
    return null;
    }
    //———————————————————————————//
    public String toString()
    {
    return( "Ma LHP :" + Malhp +
    "\nMa Hp :" + Mahp + "\nTen LHP :" + TenLhp + "\nMaGV :" + MaGv + "\nThu :"+ Thu +
    "\nTu :"+ Tu + "\nDen :"+ Den +"\nPhong :"+ Phong +"\nHoc Ky :"+ Hocky + "\n" );
    }
    //——–
    public JPanel toSwing(){
    JPanel p =new JPanel( new BorderLayout());
    JPanel t =new JPanel();
    t.add (new JLabel(""+Mahp+"__"+TenLhp+"__"+Phong+"__"+Thu+"__"+Tu+"__"+Den+"\n"));
    JPanel s =new JPanel();
    //t.add (new JLabel("\n"));
    p.add(t,BorderLayout.NORTH);
    p.add(s,BorderLayout.SOUTH);
    return p;

    }
    //——————————————//
    public static void main(String[] args) throws Exception
    {
    Lophocphan Lhp =new Lophocphan();
    //System.out.println(Lhp);
    Vector v=Lhp.XemTKB("101250531215", 111);
    //Lophocphan lhp =new Lophocphan("211THJV206");
    for(int i = 0; i<v.size();i++)
    {
    Lophocphan lhp=(Lophocphan)v.elementAt(i);
    JOptionPane.showMessageDialog(null,lhp.toSwing());
    System.out.println("————————————–");
    System.out.println(lhp);
    }
    }

    }

    ——————–
    Còn một vấn đề e muốn hỏi,khi e đang nhập xong hoặc nhập sai thì bản JOptionPane.showMessageDialog(null,"Dang Nhap thanh cong!"); nó hiện 2 lần,e phải xử lý thế nào hả Thầy ?

  467. ntthao said

    Cho mình hỏi
    Hiện minh đang làm website dựa trên frame hibernate. Nhưng mình không thể làm được trên CSDL MSSQL unicode.
    Nếu font vntime thì bình thường , bạn nào có thể giúp mình không. Mình dùng hibernate v 3.2.
    Cám ơn trước nhé

  468. lanh nguyen said

    thầy ơi, thày cho em hỏi. em có đầu bài như thế này. em nghĩ mãi mà vẫn chưa ra hướng giải quyết thế nào. thầy giúp em với :
    Có 1 table chứa dl của các con tàu, mỗi con tàu có 1 mmsi riêng, mỗi ngày chúng bắn các luồng tin về.(thông tin trong 1 bản tin thì có những trường tĩnh và động, nếu là trường động thì nó được thay đổi , còn trường tĩnh thì ko) Mỗi 1 tàu có thể bắn hàng nghìn tin 1 lúc, mỗi lần bắn về nó lại được insert vào trong bảng Tin.
    Yc: mỗi khi có bản tin nào được insert vào trong bảng Tin thì ta phải viết trigger or job để cập nhập bản tin đó. Mỗi 1 con tàu phải có 1 bản tin được cập nhật mới nhât trong bảng này. Xử lý liên tục. mỗi khi có bản tin mới về thì phải update ngay.
    bảng Tin chứa các trường:
    Mmsi: double
    Kinhdo:double (động)
    Vido:double (động)
    name: varchar2
    iwo: varchar2
    callsign: varchar2
    time: date (thời gian mỗi khi mà 1 bản tin được bắn về) -> cái mà mình update là phải lấy theo cái này
    update_time: date( thời gian mà khi bản tin được insert vào csdl)

    Qui trình xử lý:
    1. xử lý insert dữ liệu trước = java
    2. Xử lý update dùng oracle

    nếu em insert dữ liệu = java thì em nên tạo các class gì cho hợp với yêu cầu đề bải ạ?

  469. tienjuki said

    thầy ơi: thầy có thể hướng dẫn e dùng mô hình SAX để đọc nội dung từ trang XML được không ạ.
    trang xml được load về từ trên web dùng đối tượng URL trong java.net
    em đã có thể đọc được 1 file XMl tự viết dc. nhưng mấy trang trên mạng em dùng URL load về rồi ghi ra file thì đọc không dc. hình như mấy file này viết ko đúng chuẩn hay sao mà SAX đọc thì nó lỗi

  470. Võ Văn Hải said

    “thầy có thể hướng dẫn e dùng mô hình SAX để đọc nội dung từ trang XML được không ạ. trang xml được load về từ trên web dùng đối tượng URL trong java.net…”
    Đây là 1 ví dụ đơn giản đọc 1 file XML từ uri http://www.w3schools.com/xml/cd_catalog.xml rồi in ra. Việc làm thêm cái gì tùy vào mục đích của bạn.

    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
    
    public class TestSAXPerser extends DefaultHandler{
    	@Override
    	public void startElement(String uri, String localName, String qName,
    			Attributes attributes) throws SAXException {
    		System.out.println("<"+qName+">");
    	}
    	@Override
    	public void characters(char[] ch, int start, int length)
    			throws SAXException {
    		System.out.println("\t"+new String(ch,start,length));
    	}
    	@Override
    	public void endElement(String uri, String localName, String qName)
    			throws SAXException {
    		System.out.println("</"+qName+">");
    	}
    	
    	static public void main(String[] argv)throws Exception{
    		String xmlfile="http://www.w3schools.com/xml/cd_catalog.xml";
    		SAXParser parser=SAXParserFactory.newInstance().newSAXParser();
    		DefaultHandler dh=new TestSAXPerser();
    		parser.parse(xmlfile, dh);
    	}
    }
    
  471. Võ Văn Hải said

    “Có 1 table chứa dl của các con tàu, mỗi con tàu có 1 mmsi riêng, mỗi ngày chúng bắn các luồng tin về.(thông tin trong 1 bản tin thì có những trường tĩnh và ….”.
    Về phần chèn vào cơ sở dữ liệu thì bạn viết 1 lớp Infos với data như bạn cung cấp:

    public class Infos{
    	private double mmsi;
    	private double kinhdo;
    	private double vido;
    	private String name; 
    	private String iwo; 
    	private String callsign; 
    	private Date date; 
    	//....
    }
    

    Lớp thứ 2 là lớp DBHelper, trong đó bạn cung cấp phương thức insert2DB làm nhiệm vụ insert vào cơ sở dữ liệu.

  472. Thưa thầy , thầy cho e hỏi là làm sao e có thể gửi 1 đối tượng thông qua Socket , giờ e muốn gửi 1 ResultSet về cho Client thì e làm thế nào.Em cảm ơn thầy

  473. trungtran123 said

    Thầy có thể giúp e làm 1 vd để lấy dữ liệu từ textbox của jdialog xuống jtable của jinternal frame được không ?

  474. Võ Văn Hải said

    “lấy dữ liệu từ textbox của jdialog xuống jtable của jinternal frame… “
    Ví dụ bạn tạo 1 dialog có tên MyDialog. Bạn muốn lấy dữ liệu nào thì bạn tạo ra 1 data của lớp rồi viết các phương thức accessor&mutator để lấy.

    public class MyDialog extends JDialog implements ...{
    private String data;
    public String getData(){
        return data;
    }
    //xử lý nút OK bạn gắn dữ liệu của textfield của bạn cho data.
    }
    
  475. Võ Văn Hải said

    ResultSet là 1 đối tượng cận hải duy trì 1 kết nối nên bạn không gửi được. có 2 cách giải quyết:
    1. bạn tạo 1 collection (arraylist chẳng hạn) sau đó đổ dữ liệu vào và gửi.
    2. DÙng disconnect resulset như webrowset,cachedRowset,… để gửi (cái này không dùng socket)

  476. trungtran123 said

    public class MyDialog extends JDialog implements …{
    private String data;
    public String getData(){
    return data;
    }
    //xử lý nút OK bạn gắn dữ liệu của textfield của bạn cho data.
    }

    Có phải mjk cần tạo 1 lớp trung gian để lưu giữ liệu trong jdialog không hả thầy, thấy có thể làm giúp em 1 vd đơn giản được không, chứ cai này em không hiểu cho lắm :D

  477. trungtran123 said

    thầy có thể viết thử 1 vd nhỏ giúp em được không, chứ cái này em không hiểu rõ cho lắm :D

  478. 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 ạ!

  479. huongnguyenvu71 said

    Chào Thầy,
    Thầy có tài liệu hướng dẫn gọi report lên form có tham số kiểu ngày(Ngày bắt đầu và ngày kết thúc) không ạ.Em đã làm report và xem được chế độ preview, nhưng khi gọi lên form đang bị vướng, chưa biết làm thế nào để gọi với kiểu dữ liệu date(bài làm của em làm trên netBean 7.1 và plugin report 4.5.1).
    Rất mong nhận được sự hồi âm sớm của Thầy! Em cảm ơn Thầy.

  480. trungtran123 said

    Thầy ơi giúp em với, e làm eproject java sắp tới hạn nộp rùi mà chưa ra đâu vào đâu cả, thầy làm giùm e cái vd lấy dữ liệu từ textbox của jdialog xuống jtable của jinternal frame với :(

  481. trungtran123 said

    Thầy ơi em có đoạn code tìm kiếm như dưới
    Bjo em muốn khi tìm kiếm dữ liệu mới thì toàn bộ dữ liệu cũ trong bảng bị xóa hết thì làm sao hả thầy, Mong thầy chỉ dùm em
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    model = (DefaultTableModel)tblsearch_patients.getModel();

    String Search;
    Search = txtsearch.getText().trim();
    if(Kiemtra())
    {
    try{
    Connection cn = ConnectionDB.createConnectionDB();
    Statement st = cn.createStatement();
    String sql = “Select EmployeeID,EmployeeName,Addres,Phone,DepartmentName from Employees inner join Departments on Employees.DepartmentID = Departments.DepartmentID where EmployeeName =?”;
    PreparedStatement pt = cn.prepareStatement(sql);
    pt.setString(1,Search);
    ResultSet rs = pt.executeQuery();
    * // if(model.getRowCount() >0)
    // {
    // model.removeRow(0);

    // }
    while(rs.next())
    {
    String[] row = new String[5];
    row[0] = rs.getString(“EmployeeID”);
    row[1] = rs.getString(“EmployeeName”);
    row[2] = rs.getString(“Addres”);
    row[3] = rs.getString(“Phone”);
    row[4] = rs.getString(“DepartmentName”);
    model.addRow(row);
    }

    }catch(Exception e)
    {
    JOptionPane.showMessageDialog(this, “Connection error database!!!”);
    }
    }
    model = (DefaultTableModel) tblsearch_patients.getModel(); String Search; Search = txtsearch.getText().trim(); if (Kiemtra()) { try { Connection cn = ConnectionDB.createConnectionDB(); Statement st = cn.createStatement(); String sql = “Select * from Patients where PatientID = ?”; PreparedStatement pt = cn.prepareStatement(sql); pt.setString(1, Search); ResultSet rs = pt.executeQuery(); if (model.getRowCount() > 0) { model.removeRow(0); } if (rs.next()) { String[] row = new String[6]; row[0] = rs.getString(“PatientID”); row[1] = rs.getString(“PatientName”); row[2] = rs.getString(“Contact”); row[3] = rs.getString(“Reason”); row[4] = rs.getString(“VisitDate”); row[5] = rs.getString(“DepartmentID”); model.addRow(row); } else { JOptionPane.showMessageDialog(this, “Search keyword not exactly !!!”); } } catch (Exception e) { JOptionPane.showMessageDialog(this, “Connection error database!!!”); } } }
    }

  482. Smile said

    Em chào thầy!
    Thầy cho e hỏi: e chạy ứng dụng web java oracle thấy thông báo lỗi sau là sao ạ:
    java.io.IOException: Cannot run program “/usr/webserver/tomcat/webapps/ROOT/congcu/hibio/HiBioPSA/HiBioPSA”: CreateProcess error=2, The system cannot find the file specified
    Mong thầy giúp e!

  483. Võ Văn Hải said

    “…Bjo em muốn khi tìm kiếm dữ liệu mới thì toàn bộ dữ liệu cũ trong bảng bị xóa hết thì làm sao hả thầy…”
    Trước khi duyệt qua resultset, em thêm dòng sau vào để clear cái bảng:

    model.setRowCount(0); 
  484. Thưa thầy em có 1 bài là Client gửi lên Server chuỗi biểu thức tính toán và Server trả lại kết quả cho Client , e dùng kí pháp Ba Lan chuyển trung tố sang hậu tố nhưng vấn đề e gặp phải là nó in kết quả sai khi phân tích từ trung tố sang hậu tố trong 1 số trường hợp có dấu đóng mở ngoặc , thầy xem giúp e chỗ này với,cảm ơn thầy nhìu

    import java.util.ArrayList;
    import java.util.Scanner;
    import java.util.Stack;

    public class Poland {
    Stack stack = new Stack();
    ArrayList list = new ArrayList();

    public void changeToSuffix(String str) {
    String s[] = str.split(” “);
    String operator = null;
    for (int i = 0; i 0) {
    operator = (String) stack.pop();
    if (operator.equals(“-“)
    || operator.equals(“*”)
    || operator.equals(“/”)) {
    list.add(operator);
    } else {
    stack.push(operator);
    stack.push(s[i]);
    break;
    }
    } else {
    stack.push(s[i]);
    break;
    }
    }
    } else if (s[i].equals(“-“)) {
    while (true) {
    if (stack.size() > 0) {
    operator = (String) stack.pop();
    if (operator.equals(“+”) || operator.equals(“*”)
    || operator.equals(“/”)
    ) {
    list.add(operator);
    } else {
    stack.push(operator);
    stack.push(s[i]);
    break;
    }
    } else {
    stack.push(s[i]);
    break;
    }
    }
    } else if (s[i].equals(“*”)) {
    while (true) {
    if (stack.size() > 0) {
    operator = (String) stack.pop();
    if (operator.equals(“/”)) {
    list.add(operator);
    } else {
    stack.push(operator);
    stack.push(s[i]);
    break;
    }
    } else {
    stack.push(s[i]);
    break;
    }
    }
    } else if (s[i].equals(“/”)) {
    while (true) {
    if (stack.size() > 0) {
    operator = (String) stack.pop();
    if (operator.equals(“*”)) {
    list.add(operator);
    } else {
    stack.push(operator);
    stack.push(s[i]);
    break;
    }
    } else {
    stack.push(s[i]);
    break;
    }
    }
    } else if (s[i].equals(“)”)) {
    while (stack.size() > 0) {
    operator = (String) stack.pop();
    if (!operator.equals(“(“))
    list.add(operator);
    }
    }
    }
    }
    while (stack.size() > 0) {
    operator = (String) stack.pop();
    list.add(operator);
    }
    System.out.print(list);
    System.out.println(stack);
    }
    public boolean checkNumber(String s) {
    int i;
    try {
    i = Integer.parseInt(s);
    return true;
    } catch (Exception e) {
    return false;
    }
    }

    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print(“Nhap phep toan : “);
    String s = input.nextLine();
    Poland p = new Poland();
    p.changeToSuffix(s);
    }
    }

  485. Không biết sao e up code lên nó thiếu nhìu quá thầy tải giúp e với nhé

    http://www.mediafire.com/?dwxv1gn77h50q0l

  486. le hoang viet said

    thầy ơi làm ơn chi em lam một chuong trinh nhge nhạc bằng visual stdio windown applicatio cua visual stdio 2005

  487. le hoang viet said

    chương trinh trong nghe nhac trong c# thì em lam đươc rồi

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;

    namespace media
    {
    public partial class Form1 : Form
    {
    private bool fileopenning = false;
    [DllImport(“winmm.dll”)]
    public static extern int waveOutGetVolume(IntPtr hwo, out uint dwVolume);
    [DllImport(“winmm.dll”)]
    public static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume);
    public Form1()
    {
    InitializeComponent();
    uint CurrVol = 0;
    waveOutGetVolume(IntPtr.Zero, out CurrVol);
    ushort CalcVol = (ushort)(CurrVol & 0x0000ffff);
    trackWave.Value = CalcVol / (ushort.MaxValue / 10);
    }

    [DllImport(“winmm.dll”)]
    public static extern long mciSendString(string stay, StringBuilder strbuilder, int width, IntPtr sign);
    private StringBuilder sbf = new StringBuilder();
    public string Status()
    {
    mciSendString(“status mediafile mode”, sbf, sbf.Capacity, IntPtr.Zero);
    return sbf.ToString();
    }
    string staying;

    private void button_openfile_Click(object sender, EventArgs e)
    {
    if (Status() == “playing”)
    {
    staying = “close mediafile”;
    mciSendString(staying, null, 0, IntPtr.Zero);
    openFileDialog1.Title = “Chon Files nhac (*.mpg,*.avi,*.dat)”;
    openFileDialog1.Filter = “Media File(*.mpg,*.dat,*.avi,*.wmv,*.wav,*.mp3)|*.wav;*. mp3;*.mpg;*.dat;*.avi;*.wmv”;
    openFileDialog1.ShowDialog();
    fileopenning = true;
    }
    else
    {
    staying = “close mediafile”;
    mciSendString(staying, null, 0, IntPtr.Zero);
    openFileDialog1.Title = “Chon Files nhac (*.mpg,*.avi,*.dat)”;
    openFileDialog1.Filter = “Media File(*.mpg,*.dat,*.avi,*.wmv,*.wav,*.mp3,*.mkv)|*. wav;*.mp3;*.mpg;*.dat;*.avi;*.wmv;*.mkv”;
    openFileDialog1.ShowDialog();
    fileopenning = true;
    }
    }

    private void button_palyfile_Click(object sender, EventArgs e)
    {
    staying = “open \”” + this.openFileDialog1.FileName + “\” type mpegvideo alias mediafile style child parent ” + this.pictureBox1.Handle.ToInt32();
    mciSendString(staying, null, 0, IntPtr.Zero);
    staying = “put mediafile window at 0 0 ” + this.pictureBox1.Width + ” ” + this.pictureBox1.Height;
    if (fileopenning)
    {
    this.Text = openFileDialog1.FileName;
    staying = “play mediafile”;
    mciSendString(staying, null, 0, IntPtr.Zero);

    }
    else
    {
    MessageBox.Show(“Please chose file!”);
    }
    }

    private void button_stopfile_Click(object sender, EventArgs e)
    {
    this.Text = openFileDialog1.FileName;
    staying = “close mediafile”;
    mciSendString(staying, null, 0, IntPtr.Zero);

    }

    private void trackWave_Scroll(object sender, EventArgs e)
    {
    int NewVolume = ((ushort.MaxValue / 10) * trackWave.Value);
    uint NewVolumeAllChannels = (((uint)NewVolume & 0x0000ffff) | ((uint)NewVolume << 16));
    waveOutSetVolume(IntPtr.Zero, NewVolumeAllChannels);
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    }
    }

  488. le hoang viet said

    giờ thì chuyển C# thành java# nhưng em làm hoài không được
    em xin thầy giúp em!!!!!!!!!!!!!!!!1111
    trong khi chờ sự trả lời của thầy em xin cảm ơn

  489. lacie_pc said

    Thầy ơi.! Giup em làm bài tập này vơi..?
    Em đã ghi rõ trong này. Thầy down về. Xem giúp em với..?
    Em cám ơn thầy nhiều

    http://www.bang.vn/Du_Lieu/View/DuLieu/286177/hh

  490. lacie_pc said

    Ở bài tập 2 . Em muốn hiển thị thông tin của CSDL lên Jtable ..?

  491. nguyen tuyển said

    THầy có thể làm 1 demo về phân trang JSF2.0 Cho em được k a.
    Em cảm ơn thầy trc nhé

  492. Nguyen hoang nam said

    Nguyen Hoang Nam ask
    em đang làm một đề tài về Java TV API mà em chưa hiểu cho lăm xin Thầy chỉ em, và emulator em cần làm là gì?cảm on thầy nhiều

  493. Nguyen hoang nam said

    Thầy chỉ cho em cách thức hoạt động cảu java TV API và cần dùng nhưng gói nào của java đển làm được.

  494. Võ Văn Hải said

    Java TV là API gì bạn? bạn nói rõ hơn được không? TV đây là television hay TiengViet?

  495. Nguyen hoang nam said

    TV đúng là television đó thầy, có nghĩa là mình làm một application xem ti vi mà viết bằng java, nó giống phần mêm sopcast đó thầy nhưng em ko biết bắt đầu từ đâu mong thầy giúp em! em cảm ơn thầy.

  496. Chí Trường said

    Chào Thầy!! Thầy có thể hướng dẫn em giải hệ 3 phương trình 3 ẩn bằng java dược không, em chỉ giải được hệ 2 phương trình thôi.

  497. Nguyễn Thanh Hiếu said

    Mình đang viết chương trình quản lý nhà cho thuê! viết xong giao diện rùi nhưng không biết kết nối csdl ai có thể giúp mình với được không,cụ thể trong code dưới đây, mình cảm ơn?

    import java.awt.*;
    import java.util.Vector;
    import javax.swing.JMenu;
    import javax.swing.*;
    import java.util.EventListener;
    import java.awt.event.*;
    import javax.swing.table.*;
    import java.awt.event.ActionListener;
    import java.awt.color.*;
    import java.awt.Color ;
    import java.io.File;
    import javax.swing.JInternalFrame;

    //*******************************************

    public class frmNha extends JInternalFrame implements ActionListener
    {
    // Khai bao cac Label, TextField, Button
    private JLabel lbltitle, lblManha, lblTenchunha, lblgiathue;
    private JTextField txtManha, txtTenchunha, txtgiathue;
    private JButton btnxem,btnThem, btnXoa, btnSua, btnLuu, btnThoat, btnDau, btnTruoc, btnKe, btnCuoi;

    // Khai bao 1 Table
    private JTable tblNha;
    private DefaultTableModel dm;

    // Khai bao Menu
    private JMenuBar mnBar;
    private JMenu mnFile;
    private JMenuItem mnitSave, mnitOpen, mnitExit;

    // Khai bao Panel
    private JPanel Top,Center,Bottom,n1,n2,n3,n4;
    private ListNha lstNha;

    // Khai bao cac bien toan cuc
    private int pos=0;
    private boolean flag;

    // Khai bao cac Icon
    private ImageIcon sua = new ImageIcon(“icon/sua.png”), huy =new ImageIcon(“icon/Cancel.GIF”), thoat = new ImageIcon(“icon/exit.png”),them = new ImageIcon(“icon/add.GIF”);
    private ImageIcon dau = new ImageIcon(“icon/first.GIF”), truoc =new ImageIcon(“icon/previous.GIF”), ke = new ImageIcon(“icon/next.GIF”), cuoi =new ImageIcon(“icon/last.GIF”);
    private ImageIcon open = new ImageIcon(“icon/open.GIF”), print = new ImageIcon(“icon/print.GIF”), save=new ImageIcon(“icon/save.GIF”), xoa=new ImageIcon(“icon/Delete.GIF”);

    //——————————————————————————————-//
    public frmNha()
    {

    super(“Thong tin Nha”);
    Container con=this.getContentPane();

    // Tao Menu
    //—————————-
    mnBar=new JMenuBar();

    mnFile=new JMenu(“File”);

    // Tao cac Menu Item
    mnitSave=new JMenuItem(“Save”,save);
    mnitSave.setAccelerator(KeyStroke.getKeyStroke(‘S’,java.awt.event.InputEvent.CTRL_MASK));
    mnitSave.setMnemonic(‘S’);

    mnitOpen=new JMenuItem(“Open”, open);
    mnitOpen.setAccelerator(KeyStroke.getKeyStroke(‘O’,java.awt.event.InputEvent.CTRL_MASK));
    mnitOpen.setMnemonic(‘O’);

    mnitExit=new JMenuItem(“Exit”, thoat);
    mnitExit.setAccelerator(KeyStroke.getKeyStroke(‘E’,java.awt.event.InputEvent.CTRL_MASK));
    mnitExit.setMnemonic(‘E’);

    mnFile.add(mnitOpen);
    mnFile.add(mnitSave);
    mnFile.add(mnitExit);

    mnBar.add(mnFile);

    this.setJMenuBar(mnBar);

    // Xong menu
    //—————————-//

    // Tao Frame
    //———————————//
    this.Top=new JPanel();
    this.Center=new JPanel(new GridLayout(2,1));
    this.Bottom=new JPanel(new GridLayout(2,1));
    this.n1=new JPanel(new GridLayout(3,2));
    this.n2=new JPanel();
    this.n3=new JPanel();
    this.n4=new JPanel();

    // Tao cac Label, TextField, Buuton va Table
    this.lblManha=new JLabel(“MA NHA”);
    lblManha.setFont(new Font(“VNI-Times”,5,16));
    this.lblTenchunha=new JLabel(“TEN CHU NHA “);
    lblTenchunha.setFont(new Font(“VNI-Times”,5,16));
    this.lblgiathue=new JLabel(“GIA THUE”);
    lblgiathue.setFont(new Font(“VNI-Times”,5,16));

    this.txtManha=new JTextField(10);
    this.txtManha.setFont(new Font(“VNI-Times”,5,16));
    this.txtTenchunha=new JTextField(30);
    this.txtTenchunha.setFont(new Font(“VNI-Times”,5,16));
    this.txtgiathue=new JTextField(10);
    this.txtgiathue.setFont(new Font(“VNI-Times”,5,16));

    this.btnThem=new JButton(“Them”,them);
    this.btnXoa=new JButton(“Xoa”,xoa);
    this.btnSua=new JButton(“Sua”,sua);
    this.btnLuu=new JButton(“Luu”,save);
    this.btnThoat=new JButton(“Thoat”,thoat);
    this.btnDau=new JButton(dau);
    this.btnTruoc=new JButton(truoc);
    this.btnKe=new JButton(ke);
    this.btnCuoi=new JButton(cuoi);
    this.btnxem=new JButton(“In”,print);

    // Dinh dang cac button
    btnxem.setFont(new Font(“VNI-Times”,1,16));
    btnThem.setFont(new Font(“VNI-Times”,1,16));
    btnXoa.setFont(new Font(“VNI-Times”,1,16));
    btnSua.setFont(new Font(“VNI-Times”,1,16));
    btnLuu.setFont(new Font(“VNI-Times”,1,16));
    btnThoat.setFont(new Font(“VNI-Times”,1,16));
    btnDau.setFont(new Font(“VNI-Times”,1,16));
    btnTruoc.setFont(new Font(“VNI-Times”,1,16));
    btnKe.setFont(new Font(“VNI-Times”,1,16));
    btnCuoi.setFont(new Font(“VNI-Times”,1,16));

    // Dinh dang table
    String titleTable[]={“Mã nhà”,”Tên chu nhà”,”Giá thuê”};
    dm=new DefaultTableModel(0,0);
    for(int i=0;i<titleTable.length;i++)
    dm.addColumn(titleTable[i].toString());
    this.tblNha=new JTable(dm);
    this.tblNha.setFont(new Font("VNI-Times",5,16));
    this.n2.add(new JScrollPane(tblNha));

    //——————————————————//

    lbltitle=new JLabel("THONG TIN NHA");
    this.lbltitle.setFont(new Font("VNI-Times",1,25));
    Top.add(this.lbltitle);

    this.lstNha=new ListNha();
    //—————————————————–
    // Add cac Label, TextField, Button va Table vao cac JPanel
    this.n1.add(lblManha);
    this.n1.add(txtManha);
    this.n1.add(lblTenchunha);
    this.n1.add(txtTenchunha);
    this.n1.add(lblgiathue);
    this.n1.add(txtgiathue);

    this.n3.add(this.btnDau);
    this.n3.add(this.btnTruoc);
    this.n3.add(this.btnKe);
    this.n3.add(this.btnCuoi);

    this.n4.add(this.btnThem);
    this.n4.add(this.btnLuu);
    this.n4.add(this.btnXoa);
    this.n4.add(this.btnSua);
    this.n4.add(this.btnxem);
    this.n4.add(this.btnThoat);

    // Add p1,p2,p3,p4 vao Center,Bottom
    this.Center.add(this.n1);
    this.Center.add(this.n2);
    this.Bottom.add(this.n3);
    this.Bottom.add(this.n4);

    // Dua vao Container
    con.add(this.Top,BorderLayout.NORTH);
    con.add(this.Center,BorderLayout.CENTER);
    con.add(this.Bottom,BorderLayout.SOUTH);

    // Dang ki su kien cho cac button, menu item
    this.btnDau.addActionListener(this);
    this.btnTruoc.addActionListener(this);
    this.btnKe.addActionListener(this);
    this.btnCuoi.addActionListener(this);
    this.btnThem.addActionListener(this);
    this.btnXoa.addActionListener(this);
    this.btnSua.addActionListener(this);
    this.btnxem.addActionListener(this);
    this.btnLuu.addActionListener(this);
    this.btnThoat.addActionListener(this);
    mnitOpen.addActionListener(this);
    mnitSave.addActionListener(this);
    mnitExit.addActionListener(this);
    // mnitPrint.addActionListener(this);

    // Cho Frame hien len
    this.setVisible(true);
    this.setResizable(false);
    this.setSize(700,450);
    this.setEdit(false);
    this.setAllButton(false);
    this.btnSua.setEnabled(false);
    this.btnXoa.setEnabled(false);

    // Khi click Mouse vao bang thi dlieu hien len text
    this.tblNha.addMouseListener(new MouseListener()
    {
    public void mouseClicked(MouseEvent me)
    {
    int vt=tblNha.getSelectedRow();
    pos=vt;
    lenText(vt);
    if(vt==0)
    setButton(false);
    else if(vt==tblNha.getRowCount()-1)
    setButton(true);
    else
    setAllButton(true);
    }
    public void mousePressed(MouseEvent me){}
    public void mouseEntered(MouseEvent me){}
    public void mouseExited(MouseEvent me){}
    public void mouseReleased(MouseEvent me){}
    });
    }
    // Viet ham setEdit, khi form duoc load len
    public void setEdit(boolean edit)
    {
    this.btnLuu.setEnabled(edit);
    this.txtManha.setEditable(edit);
    this.txtTenchunha.setEditable(edit);
    this.txtgiathue.setEditable(edit);
    }

    // Ham ClearEdit
    public void ClearEdit()
    {
    this.txtManha.setText("");
    this.txtTenchunha.setText("");
    this.txtgiathue.setText("");

    }

    // Ham RefreshTable
    public void RefreshTable()
    {
    Nha tmp;
    for(int i=0;i<lstNha.laykichthuoc();i++)
    {
    tmp=lstNha.timn(i);
    String st[]={tmp.getMan(),tmp.getTenn(),tmp.getgiathue()+""};
    dm.addRow(st);
    }
    this.tblNha.setModel(dm);
    }

    // Ham setButton dung de dinh dang cac nut duyet khi duyet du lieu
    public void setButton(boolean move)
    {
    this.btnDau.setEnabled(move);
    this.btnTruoc.setEnabled(move);
    this.btnKe.setEnabled(!move);
    this.btnCuoi.setEnabled(!move);
    }

    // Ham setAllButton dung de dinh dang tat ca cac nut duyet o cung 1 trang thai
    public void setAllButton(boolean move)
    {
    this.btnDau.setEnabled(move);
    this.btnTruoc.setEnabled(move);
    this.btnKe.setEnabled(move);
    this.btnCuoi.setEnabled(move);
    }

    // Ham lenText dung de dua du lieu vao cac textField
    public void lenText(int pos)
    {
    this.txtManha.setText(lstNha.timn(pos).getMan());
    this.txtTenchunha.setText(lstNha.timn(pos).getTenn());
    this.txtgiathue.setText(lstNha.timn(pos).getgiathue()+"");

    }

    public void actionPerformed(ActionEvent e)
    {
    Object o=e.getSource();

    // Button Thoat
    if(o.equals(this.btnThoat))
    {
    this.dispose();
    }

    // Button Them
    else if(o.equals(this.btnThem))
    {
    if (this.btnThem.getText().equalsIgnoreCase("Them"))
    {
    this.flag=true;
    this.btnThem.setText("Huy");
    this.setEdit(true);
    this.ClearEdit();
    this.txtManha.requestFocus(true);
    this.setAllButton(true);
    this.btnXoa.setEnabled(true);
    this.btnSua.setEnabled(true);
    }
    else
    {
    this.setEdit(false);
    this.setAllButton(true);
    this.btnThem.setText("Them");
    }
    }

    // Button Luu
    else if(o.equals(this.btnLuu))
    {
    if(flag)
    {
    if(lstNha.themn(new Nha(this.txtManha.getText(),this.txtTenchunha.getText(),Integer.parseInt(this.txtgiathue.getText())))==-1)
    {
    JOptionPane.showMessageDialog(null," Trung ma nha");
    this.txtManha.requestFocus(true);
    }
    else
    {
    Nha tmp=new Nha(this.txtManha.getText(),this.txtTenchunha.getText(),Integer.parseInt(this.txtgiathue.getText()));
    String st[]={tmp.getMan(),tmp.getTenn(),tmp.getgiathue()+""};
    dm.addRow(st);
    this.tblNha.setModel(dm);

    JOptionPane.showMessageDialog(null," Ban da them thanh cong: "+this.lstNha.laykichthuoc());
    this.setEdit(false);
    this.setAllButton(true);
    this.btnThem.setText("Theâm");
    }
    }
    else
    {
    if(lstNha.suan (new Nha(this.txtManha.getText(),this.txtTenchunha.getText(),Integer.parseInt(this.txtgiathue.getText())),this.pos))
    JOptionPane.showMessageDialog(null,"Ban da sua thanh cong!");
    else
    JOptionPane.showMessageDialog(null,"Ban chua sua duoc!!!");
    this.RefreshTable();
    this.setEdit(false);
    this.btnSua.setText("Söûa");
    }
    }

    // Button sua
    else if(o.equals(this.btnSua))
    {
    if(this.btnSua.getText().equalsIgnoreCase("S?a"))
    {
    flag = false;
    this.txtgiathue.setEnabled(true);
    this.txtTenchunha.setEnabled(true);
    this.txtManha.setEnabled(false);
    this.setAllButton(true);
    this.btnSua.setText("H?y b?");
    }
    else
    {
    this.setEdit(false);
    this.btnSua.setText("S?a");
    this.lenText(this.pos);
    }
    }

    // Menu Item Exit
    else if(o.equals(this.mnitExit))
    {
    this.dispose();
    }

    // Button Dau
    else if(o.equals(this.btnDau))
    {
    this.pos=0;
    this.lenText(this.pos);
    this.setButton(false);
    this.setEdit(false);
    }

    // Button Cuoi
    else if(o.equals(this.btnCuoi))
    {
    this.pos=lstNha.laykichthuoc()-1;
    this.lenText(this.pos);
    this.setButton(true);
    this.setEdit(false);
    }

    // Button Ke
    else if(o.equals(this.btnKe))
    {
    this.pos++;
    if(this.pos==lstNha.laykichthuoc())
    {
    this.setButton(true);
    this.pos–;
    }
    else
    {
    this.lenText(this.pos);
    this.setAllButton(true);
    this.setEdit(false);
    }
    }

    // Button Truoc
    else if(o.equals(this.btnTruoc))
    {
    this.pos–;
    if(this.pos==-1)
    {
    this.setButton(false);
    this.pos++;
    }
    else
    {
    this.lenText(this.pos);
    this.setAllButton(true);
    this.setEdit(false);
    }
    }

    // Button Xoa
    else if(o.equals(this.btnXoa))
    {
    String kq=JOptionPane.showInputDialog(null,"Ban hay nhap ma nha can xoa: ","Thong bao",0);
    int pos=lstNha.Xoan(kq);
    if(pos==-1)
    {
    JOptionPane.showMessageDialog(null,"Khong xoa duoc, Ban nhap lai ma nha");
    }
    else
    {
    this.dm.removeRow(pos);
    if(this.dm.getRowCount()==0)
    {
    this.setAllButton(false);
    this.ClearEdit();
    }
    else
    {
    if(pos==0)
    this.lenText(pos);
    else
    {
    pos–;
    this.lenText(pos);
    }
    }
    JOptionPane.showMessageDialog(null,"Ban da xoa thanh cong");
    }
    }
    }

    }

  498. Nguyễn Thanh Hiếu said

    Thây tải về sửa lổi kết nối csdl em voi, em cảm ơn thầy.

    http://www.mediafire.com/myfiles.php

  499. Bắc said

    Thầy ơi cho em hỏi em có cột ngày sinh kiểu dữ liệu datetime trong sql khi em insert vào sql thì báo lỗi làm sao để em chuyển đổi giữa string và datetime hả thầy thầy giúp em với!
    lỗi :java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting datetime from character string.

    String id = txt_id.getText().trim();
    String name = txt_name.getText().trim();
    String car= cbx_car.getSelectedItem().toString();
    String date = txt_date.getText().trim();
    boolean gender = true;
    if(rdn_female.isSelected()) {
    gender = false;
    }
    String birthday = txt_birthday.getText().trim();

    String address = txt_address.getText().trim();
    if (txt_phone.getText().toString().equals(“”)) {
    JOptionPane.showMessageDialog(null, ” Phone not empty!”);
    return;
    }

    int phone = 0;
    try {
    phone = Integer.parseInt(txt_phone.getText());
    } catch (NumberFormatException ne) {
    ne.printStackTrace();
    JOptionPane.showMessageDialog(null, “Phone not a number!”);
    txt_phone.requestFocus();
    txt_phone.selectAll();
    return;
    }
    try {
    String sql = “Insert into Customer values(‘”+id+”‘,'”+name+”‘,'”+car+”‘,'”+date+”‘,'”+gender+”‘,'”+birthday+”‘,'”+address+”‘,'”+phone+”‘)”;
    PreparedStatement ps = getconection().prepareStatement(sql);
    int res = ps.executeUpdate();
    } catch (SQLException ex) {
    ex.printStackTrace();
    }

  500. tntien.ecit@gmail.com said

    Thầy và các bạn giúp mình về EJB.
    Mình muốn làm một bài Students chẳng hạn: có 2 trường id với name, chức năng thêm, sửa, xóa làm bằng EJB, mình muốn làm giá trị gán cứng nhưng làm không được, còn làm kết nối DB thì okie,
    Thầy và các bạn ai đã từng làm rồi thì cho mình xin một bài demo nhá

    Thanks Thầy và các bạn!

  501. Giolaoxunghe90 said

    Cảm ơn vì những bài viết của thầy

  502. Phương said

    Em muốn hỏi thầy là có thể load dữ liệu từ database vào control checkbox dk không ạ, nếu được thì làm thế nào ạ

  503. vth_itt said

    IReport in Java EE . Ai giúp đc k ạ ???????

  504. Võ Văn Hải said

    ạn tìm torng blog ắt có

  505. Pham Dinh said

    xin chào thầy, đây là lần đầu em ghé vào trang cảu thầy, em thấy rất hay…và em cũng mong muốn được học hỏi nhiều hơn…em đang học về webservice in Java, và cũng là lần đầu tìm hiểu về Java…xin thầy cho em chút kinh nghiệm và những yêu cầu cơ bản nào để có thể hoàn thành tốt được webservice. em xin cảm ơn thầy

  506. Hey there! This post could not be written any better! Reading through this post
    reminds me of my old room mate! He always kept chatting
    about this. I will forward this write-up to him.
    Pretty sure he will have a good read. Thanks
    for sharing!

  507. Khế Xanh said

    có bác nào có project về java sem 2 với đề tài SALES AND PURCHASE MANAGEMENT SYSTEM FOR MOBILE SHOP làm về phần product và inventory có thì share lên cho e tham khảo vơi!!

  508. huynhtanba123@gmail.com said

    thầy ơi em có thắt mặt là khi lập trinh java có gì khác giữa lập trinh Applet và đùng kéo thả trong netbean. sao mình không dùng netbean kéo thả cho nhanh mà phải lập trình Applet

  509. phamvanluu said

    Thầy Ơi cho em hỏi khi em thực thi Ứng dụng RMI trong cmd
    javac * .java -encoding UTF-8 thì bị lỗi là :

    KetNoi.java:6: error: package com.microsoft.sqlserver.jdbc does not exist
    import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
    ^
    KetNoi.java:88: error: cannot find symbol
    SQLServerDataSource db = new SQLServerDataSource();
    ^
    symbol: class SQLServerDataSource
    location: class KetNoi
    KetNoi.java:88: error: cannot find symbol
    SQLServerDataSource db = new SQLServerDataSource();
    ^
    symbol: class SQLServerDataSource
    location: class KetNoi
    KetNoi.java:142: error: cannot find symbol
    SQLServerDataSource db = new SQLServerDataSource();
    ^
    symbol: class SQLServerDataSource
    location: class KetNoi
    KetNoi.java:142: error: cannot find symbol
    SQLServerDataSource db = new SQLServerDataSource();
    ^
    symbol: class SQLServerDataSource
    location: class KetNoi
    Note: frmThongTinhNhanVien.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    5 errors

    ==========
    đây là code lớp bị lỗi

    import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.Properties;

    /**
    *
    * @author Anh Duc
    */
    public class KetNoi_DB {

    /**
    * Phương thức dùng để tạo kết nối tới DB
    *
    * @return Connection
    * @throws IOException
    * @throws Exception
    */
    public static Connection CreateConnectionDB() throws IOException, Exception {
    Properties pro = new Properties();
    pro.load(new FileInputStream(“nhom15.properties”));// Đọc file chứa những properties
    String isDBSQL = pro.getProperty(“isDB_SQL”); // Lấy ra tên property, file .properties có dạng là nó chứa nhiều dòng key=value
    if (isDBSQL.equalsIgnoreCase(“true”)) {
    return KetNoi_DB.KetNoiSQLDriverJDBC();
    } else {
    return KetNoi_DB.KetNoiAccess20032010JDBC();
    }
    }

    /**
    * Phương thức dùng để kết nối với cơ sở dữ liệu là MS-SQL
    *
    * @return Connection
    * @throws ClassNotFoundException
    * @throws SQLException
    * @throws Exception
    */
    private static Connection KetNoiSQLDriverJDBC() throws Exception {
    try {
    Connection con = null;

    Properties pro = new Properties();
    pro.load(new FileInputStream(“pro.properties”));// Đọc file chứa những properties
    String serverName = pro.getProperty(“serverName”);// Lấy ra tên property, file .properties có dạng là nó chứa nhiều dòng key=value
    String databaseName = pro.getProperty(“databaseName”);
    int portServer = Integer.parseInt(pro.getProperty(“portServer”));
    String user = pro.getProperty(“user”);
    String pass = pro.getProperty(“pass”);
    Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDataSource”);
    SQLServerDataSource db = new SQLServerDataSource();
    db.setServerName(serverName);
    db.setDatabaseName(databaseName);
    db.setPortNumber(portServer);
    db.setUser(user);
    db.setPassword(pass);

    con = db.getConnection();

    return con;
    } catch (SQLException ex1) {
    ex1.printStackTrace();
    throw new Exception(“Lỗi: Không thể kết nối đến SQL: ” + ex1.getMessage());
    } catch (Exception ex2) {
    ex2.printStackTrace();
    throw new Exception(“Lỗi: KetNoi_SQL_Driver_JDBC(): ” + ex2.getMessage());
    }
    }
    }

    các class + interface + impl em để chung trong 1 packed. Em ko biết phải đặt gói sqljdbc.jar ở đâu để nó có thể tìm thấy. em chạy trên netbean thì em add vào libraries thì chạy bình thường nhưng khi em chạy trên cmd thì nó báo lỗi. Mong Thầy cho em cách khắc phục. Em cám ơn Thầy.

  510. Võ Văn Hải said

    Em có thư viện JDBC chưa? Em có thể add vào classpath hoặc copy file sqljdbc4.jar vào thư mục lib của JDK.

  511. pe' liêu said

    thầy ơi! cho em hỏi lam thế nào để thiết kế phần mềm java co ribbonbar vay thầy? co phải là add thêm thư viện vào k?
    Mong nhan duoc hồi âm sớm từ thầy chúc thầy sức khỏe

  512. Luis Lâm said

    java.lang.NoClassDefFoundError: javax/crypto/spec/SecretKeySpec
    com.sun.net.ssl.internal.ssl.CipherSuite$BulkCipher.isAvailable(Unknown Source)
    com.sun.net.ssl.internal.ssl.CipherSuite$BulkCipher.isAvailable(Unknown Source)
    com.sun.net.ssl.internal.ssl.CipherSuite.isAvailable(Unknown Source)
    com.sun.net.ssl.internal.ssl.CipherSuiteList.buildAvailableCache(Unknown Source)
    com.sun.net.ssl.internal.ssl.CipherSuiteList.getDefault(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.init(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
    com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:222)
    com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163)
    có ai fix được lỗi này ko?

  513. Võ Văn Hải said

    java ribbonbar? ý tưởng mới nghe!
    Em phải tự định nghĩa lại các components lại theo ý em. CÒn nếu thích làm theo trào lưu như .net thì cũng có nhiều components của hãng thứ 3 lắm. hỏi Mr. Google ấy!
    Chúc vui!

  514. Võ Văn Hải said

    Coi cái gói java security có add vô lib chưa?

  515. Sai Oanh said

    Em Chào thầy! (Cho phép em được gọi như thế dù em chưa là học sinh của thầy). Em mới bắt đầu học lập trình (java). Em có 1 vấn đề để giải quyết bài tập dạng như dưới đây: mong thầy giúp đỡ em ạ!
    em xem đoạn code của bạn em:

    import Utils.TextIO;

    public class TowerOfPower {
    public static void main(String[] args) {
    TextIO.putln(“Welcome to TowerOfPower”);

    String result;
    TextIO.putln(“please, enter a numeric value between 1 and 10:”);
    int val= TextIO.getInt();
    while (val10){
    TextIO.putln(“Please, enter a numeric value between 1 and 10:”);
    val = TextIO.getInt();
    }
    int current= 1;
    boolean fS= true;

    for (int i=0; i<7; i++){
    current= val*current;
    result = String.valueOf(current); //covert int into string
    for (int p=0; p+result.length() <=8; p++){
    TextIO.put("");
    }
    TextIO.putln(result);
    if (fS) current =val;
    fS=false;

    }

    }

    }

    Nhưng em không hiểu từ đoạn result=String.valueOf(Current);
    Có cách nào làm khác đi dễ hiểu cho người mới bắt đầu học không thưa thầy?

    kết quả của bài nó sẽ hiển thị thế này ạ:

    enter base? 2
    2
    4
    8
    16
    32
    64
    128
    enter base? 10
    10
    100
    1000
    10000
    100000
    1000000
    10000000

    Em Cảm Ơn thầy ạ!

  516. Võ Văn Hải said

    String.valueOf(int) trả về dạng chuỗi của tham số kiểu nguyên truyền vào. Ngắn gọn hơn thì thế này:
    Thay vì bạn dùng

    result=String.valueOf(Current);

    thì bạn dùng

    result=""+Current;

    chúc vui!

  517. Nguyễn Thanh Thảo said

    Thầy ơi, thầy có code về game typing (trò chơi đánh chữ) không thầy? Mong thầy giúp em với!

  518. Nam said

    Có bạn nào đã viết 1 chương trình xem TiVi online chưa? bày mình với

  519. Tùng Dương said

    Xin chào thầy và các bạn, nếu em muốn viết 1 chương trình java để xem tivi trực tuyến thì em sẽ viết như thế nào?
    Ví dụ em có link của 1 kênh truyền hình, giờ làm sao chạy được kênh đó

  520. Nguyễn Tuấn Anh said

    Em chào thầy!
    Em mới chuyển sang dùng ubuntu 12.04 (32 bit) nhưng em chạy eclipse(bản Juno và Indigo, sever jboss 4.2) nó không cập nhật code mới em vừa làm(chạy lên web nó cứ hiện bản cũ). Mong thầy và các bạn giúp đỡ em!
    Em xin cảm ơn

  521. nguyễn tuấn anh said

    15:26:32,794 INFO [Server] Starting JBoss (MX MicroKernel)…
    15:26:32,797 INFO [Server] Release ID: JBoss [Trinity] 4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)
    15:26:32,800 INFO [Server] Home Dir: D:\VHC-Server\VMSC2-V1.0\VMSC2-4.2\VMSC2-4.2
    15:26:32,800 INFO [Server] Home URL: file:/D:/VHC-Server/VMSC2-V1.0/VMSC2-4.2/VMSC2-4.2/
    15:26:32,802 INFO [Server] Patch URL: null
    15:26:32,803 INFO [Server] Server Name: default
    15:26:32,803 INFO [Server] Server Home Dir: D:\VHC-Server\VMSC2-V1.0\VMSC2-4.2\VMSC2-4.2\server\default
    15:26:32,803 INFO [Server] Server Home URL: file:/D:/VHC-Server/VMSC2-V1.0/VMSC2-4.2/VMSC2-4.2/server/default/
    15:26:32,804 INFO [Server] Server Log Dir: D:\VHC-Server\VMSC2-V1.0\VMSC2-4.2\VMSC2-4.2\server\default\log
    15:26:32,804 INFO [Server] Server Temp Dir: D:\VHC-Server\VMSC2-V1.0\VMSC2-4.2\VMSC2-4.2\server\default\tmp
    15:26:32,805 INFO [Server] Root Deployment Filename: jboss-service.xml
    15:26:33,705 INFO [ServerInfo] Java version: 1.7.0_03,Oracle Corporation
    15:26:33,706 INFO [ServerInfo] Java VM: Java HotSpot(TM) Client VM 22.1-b02,Oracle Corporation
    15:26:33,706 INFO [ServerInfo] OS-System: Windows 7 6.1,x86
    15:26:34,320 INFO [Server] Core system initialized
    15:26:39,782 INFO [WebService] Using RMI server codebase: http://localhost:8083/
    15:26:39,790 INFO [Log4jService$URLWatchTimerTask] Configuring from URL: resource:jboss-log4j.xml
    15:26:43,771 INFO [TransactionManagerService] JBossTS Transaction Service (JTA version) – JBoss Inc.
    15:26:43,771 INFO [TransactionManagerService] Setting up property manager MBean and JMX layer
    15:26:44,197 INFO [TransactionManagerService] Starting recovery manager
    15:26:44,662 INFO [TransactionManagerService] Recovery manager started
    15:26:44,662 INFO [TransactionManagerService] Binding TransactionManager JNDI Reference
    15:26:49,107 INFO [EJB3Deployer] Starting java:comp multiplexer
    15:26:53,629 INFO [NativeServerConfig] JBoss Web Services – Native
    15:26:53,629 INFO [NativeServerConfig] jbossws-3.0.1-native-2.0.4.GA (build=200803312044)
    15:26:55,348 INFO [Embedded] Catalina naming disabled
    15:26:55,710 INFO [AprLifecycleListener] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;native;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;D:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\Program Files\PC Connectivity Solution\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\Program Files\TortoiseSVN\bin;;D:\Set up\Eclipse-Juno;;.
    15:26:55,845 INFO [Http11Protocol] Initializing Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080
    15:26:55,846 INFO [AjpProtocol] Initializing Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009
    15:26:55,847 INFO [Catalina] Initialization processed in 498 ms
    15:26:55,847 INFO [StandardService] Starting service jboss.web
    15:26:55,849 INFO [StandardEngine] Starting Servlet Engine: JBossWeb/2.0.1.GA
    15:26:55,896 INFO [Catalina] Server startup in 49 ms
    15:26:56,087 INFO [TomcatDeployer] deploy, ctxPath=/, warUrl=…/deploy/jboss-web.deployer/ROOT.war/
    15:26:57,434 INFO [TomcatDeployer] deploy, ctxPath=/invoker, warUrl=…/deploy/http-invoker.sar/invoker.war/
    15:26:57,715 INFO [TomcatDeployer] deploy, ctxPath=/jbossws, warUrl=…/deploy/jbossws.sar/jbossws-context.war/
    15:26:57,861 INFO [TomcatDeployer] deploy, ctxPath=/jbossmq-httpil, warUrl=…/deploy/jms/jbossmq-httpil.sar/jbossmq-httpil.war/
    15:26:58,835 INFO [TomcatDeployer] deploy, ctxPath=/web-console, warUrl=…/deploy/management/console-mgr.sar/web-console.war/
    15:26:59,769 INFO [MailService] Mail Service bound to java:/Mail
    15:26:59,863 INFO [QuartzService] Create QuartzService(MyQuartz)…
    15:27:00,026 INFO [QuartzService] QuartzService(MyQuartz) created.
    15:27:00,027 INFO [QuartzService] Start QuartzService(MyQuartz)…
    15:27:00,119 INFO [SchedulerSignalerImpl] Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
    15:27:00,120 INFO [QuartzScheduler] Quartz Scheduler v.1.6.6 created.
    15:27:00,125 INFO [RAMJobStore] RAMJobStore initialized.
    15:27:00,125 INFO [StdSchedulerFactory] Quartz scheduler ‘DefaultQuartzScheduler’ initialized from an externally provided properties instance.
    15:27:00,125 INFO [StdSchedulerFactory] Quartz scheduler version: 1.6.6
    15:27:00,126 INFO [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
    15:27:00,126 INFO [QuartzService] QuartzService(MyQuartz) started.
    15:27:00,395 INFO [RARDeployment] Required license terms exist, view META-INF/ra.xml in …/deploy/jboss-ha-local-jdbc.rar
    15:27:00,555 INFO [RARDeployment] Required license terms exist, view META-INF/ra.xml in …/deploy/jboss-ha-xa-jdbc.rar
    15:27:00,765 INFO [RARDeployment] Required license terms exist, view META-INF/ra.xml in …/deploy/jboss-local-jdbc.rar
    15:27:00,892 INFO [RARDeployment] Required license terms exist, view META-INF/ra.xml in …/deploy/jboss-xa-jdbc.rar
    15:27:01,021 INFO [RARDeployment] Required license terms exist, view META-INF/ra.xml in …/deploy/jms/jms-ra.rar
    15:27:01,154 INFO [RARDeployment] Required license terms exist, view META-INF/ra.xml in …/deploy/mail-ra.rar
    15:27:03,539 INFO [ConnectionFactoryBindingService] Bound ConnectionManager ‘jboss.jca:service=DataSourceBinding,name=DefaultDS’ to JNDI name ‘java:DefaultDS’
    15:27:04,006 INFO [A] Bound to JNDI name: queue/A
    15:27:04,009 INFO [B] Bound to JNDI name: queue/B
    15:27:04,010 INFO [C] Bound to JNDI name: queue/C
    15:27:04,011 INFO [D] Bound to JNDI name: queue/D
    15:27:04,012 INFO [ex] Bound to JNDI name: queue/ex
    15:27:04,051 INFO [testTopic] Bound to JNDI name: topic/testTopic
    15:27:04,053 INFO [securedTopic] Bound to JNDI name: topic/securedTopic
    15:27:04,054 INFO [testDurableTopic] Bound to JNDI name: topic/testDurableTopic
    15:27:04,056 INFO [testQueue] Bound to JNDI name: queue/testQueue
    15:27:04,099 INFO [UILServerILService] JBossMQ UIL service available at : localhost/127.0.0.1:8093
    15:27:04,140 INFO [DLQ] Bound to JNDI name: queue/DLQ
    15:27:04,329 INFO [ConnectionFactoryBindingService] Bound ConnectionManager ‘jboss.jca:service=ConnectionFactoryBinding,name=JmsXA’ to JNDI name ‘java:JmsXA’
    15:27:04,585 INFO [ConnectionFactoryBindingService] Bound ConnectionManager ‘jboss.jca:service=DataSourceBinding,name=vmsc2_alarm’ to JNDI name ‘java:vmsc2_alarm’
    15:27:04,591 INFO [ConnectionFactoryBindingService] Bound ConnectionManager ‘jboss.jca:service=DataSourceBinding,name=vmsc2DS’ to JNDI name ‘java:vmsc2DS’
    15:27:04,595 INFO [ConnectionFactoryBindingService] Bound ConnectionManager ‘jboss.jca:service=DataSourceBinding,name=remoteDS’ to JNDI name ‘java:remoteDS’
    15:27:04,613 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=…/deploy/jmx-console.war/
    15:27:05,024 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080
    15:27:05,038 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009
    15:27:05,045 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 32s:217ms

    Hi, All
    Chương trình của em chạy đến đây thì dừng không biết tại sao mong thầy và các bạn xem giúp!
    Em xin cảm ơn!

  522. Le Duc Quyen said

    Thầy cho e hỏi là làm thế nào để lấy một giá trị trong Jtable ra để dùng cho việc tính khác ạ.E dùng cái getvalueat() nhưng không được.thầy giúp e với ạ.E cảm ơn nhiều!

  523. Thanh Thúy said

    Em chào Thầy!
    Thầy cho em hỏi, em muốn tạo ứng dụng JMS, thì trên Netbean em có thể tạo như thế nào? (tạo project là Java application hay Java web application? ). Em mới tìm hiểu nên chưa biết về cách tạo ứng dụng và sử dụng trên Netbean. Mong Thầy chỉ giúp em!
    Em cảm ơn Thầy!

  524. DinhVu said

    Thầy và các bạn giúp em chỗ này với .Em kết nối dữ liệu mysql bằng resultset lấy dữ liệu ra jtable thì được ,nhưng update thì lại bị lỗi .
    Code :
    ppsThanhVien = ClassConnection.conn.prepareStatement(“SELECT * FROM thanhvien”, ResultSet.CONCUR_UPDATABLE, ResultSet.TYPE_SCROLL_SENSITIVE);
    rsThanhVien = ppsThanhVien.executeQuery();
    rsThanhVien.moveToInsertRow();
    Netbean trả về exception :com.mysql.jdbc.NotUpdatable: Result Set not updatable.This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, can not use functions and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, can not use functions and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.

    bảng dữ liệu của em đã set primary key hết rồi mà vẫn bị ,em đang sử dụng mysql 5.5.32 gói đi kèm XAMPP ,và thư viện com.jdbc.mysql.driver 5.1.5

  525. Võ Văn Hải said

    java application hay webapp đều có thể truy xuất JMS

  526. Trung Nguyên said

    em chào thầy! em đang làm 1 ứng dụng về web client dùng kỹ thuật socket,thầy có thể viết 1 bài hướng dẫn cho em được không ạ! Em cám ơn thầy!

  527. Đức Anh Trần said

    chào thầy! cho e hỏi xíu về applet nhà thầy. nếu thấy có thời gian thì giúp dùm e với
    e co doan code nhu the nay:
    [php]
    import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;
    public class Demobutton extends Applet implements ActionListener, KeyListener, MouseListener {
    private Button WelcomeButton;
    private Button LineButton;
    private Button ArcButton;
    private Button TextButton;

    public void init()
    {
    WelcomeButton=new Button(“Welcome”);
    LineButton =new Button(“Duong Thang”);
    ArcButton=new Button(“Duong Cong”);
    TextButton=new Button(“Ve Text”);
    rect = new Rectangle();

    WelcomeButton.addActionListener(this);
    LineButton.addActionListener(this);
    ArcButton.addActionListener(this);
    TextButton.addActionListener(this);

    add(WelcomeButton);
    add(LineButton);
    add(ArcButton);
    add(TextButton);
    }
    int type;
    public void actionPerformed(ActionEvent event)
    {
    Object obj = event.getSource();
    if(obj==WelcomeButton)
    javax.swing.JOptionPane.showMessageDialog(this,”Chao mung ban! To Day Lucky”);
    else if(obj==LineButton) {
    type = 1;
    width = getSize().width;
    height = getSize().height;
    backbuffer = createImage(width, height);
    backg = backbuffer.getGraphics();
    backg.setColor(Color.white);
    backg.fillRect(0, 0, width, height);
    backg.setColor(Color.black);
    addMouseListener(this);
    addMouseMotionListener(this);
    } else if(obj==ArcButton) {
    type = 2;
    width = getSize().width;
    height = getSize().height;
    setBackground(Color.WHITE );
    } else {
    type = 3;
    addMouseListener(this);
    addMouseMotionListener(this);
    setBackground(Color.green);
    }
    repaint();
    }

    int width, height;
    Point start, end;
    Image backbuffer;
    Graphics backg;
    Rectangle rect;

    public void mouseEntered(MouseEvent e) {
    }
    public void mouseExited(MouseEvent e) {
    }
    public void mousePressed(MouseEvent e) {
    if (e.getButton() == MouseEvent.BUTTON1) {
    start = new Point(e.getX(), e.getY());
    }
    }
    public void mouseReleased(MouseEvent e) {
    if (type == 3) return;
    if (start != null && e.getButton() == MouseEvent.BUTTON1) {
    backg.drawLine(start.x, start.y, e.getX(), e.getY());
    start = null;
    end = null;
    this.repaint();
    e.consume();
    }
    }
    public void mouseClicked( MouseEvent e ) {
    }
    public void mouseMoved(MouseEvent e) {
    }
    public void mouseDragged(MouseEvent e) {
    if (type == 3) {
    rect = new Rectangle(e.getX(),e.getY(),30,30);
    repaint();
    return;
    }
    if (start != null) {
    end = new Point(e.getX(), e.getY());
    this.repaint();
    e.consume();
    }
    }
    public void paint(Graphics g) {
    if (type == 1) {
    g.drawImage(backbuffer, 0, 0, this);
    if (start != null && end != null) {
    g.drawLine(start.x, start.y, end.x, end.y);
    }
    } else if (type == 2){
    g.setColor(Color.green );
    setForeground(Color.BLACK);
    g.drawArc(10,100,500,10,100,450);
    } else {
    g.setColor(Color.red);
    g.fillRect(rect.x-5, rect.y-5, rect.width ,rect.height );
    }
    }
    class Point {
    public int x, y;
    public Point(int x, int y) {
    this.x = x;
    this.y = y;
    }
    }
    }
    [/php]
    và đoạn code như thế này
    [php]
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;

    public class vetext extends Applet
    implements KeyListener, MouseListener {

    int width, height;
    int x, y;
    String s = “”;

    public void init() {
    width = getSize().width;
    height = getSize().height;
    setBackground( Color.WHITE );

    x = width/2;
    y = height/2;

    addKeyListener( this );
    addMouseListener( this );
    }

    public void keyPressed( KeyEvent e ) { }
    public void keyReleased( KeyEvent e ) { }
    public void keyTyped( KeyEvent e ) {
    char c = e.getKeyChar();
    if ( c != KeyEvent.CHAR_UNDEFINED ) {
    s = s + c;
    repaint();
    e.consume();
    }
    }

    public void mouseEntered( MouseEvent e ) { }
    public void mouseExited( MouseEvent e ) { }
    public void mousePressed( MouseEvent e ) { }
    public void mouseReleased( MouseEvent e ) { }
    public void mouseClicked( MouseEvent e ) {
    x = e.getX();
    y = e.getY();
    s = “”;
    repaint();
    e.consume();
    }

    public void paint( Graphics g )
    {
    g.setColor( Color.BLACK);
    g.drawString( s, x, y );
    }
    }
    [/php]
    e muốn kết hợp cái vẻ text bên dưới vào cái button bên trên thì phải viết code như thế nào ak

  528. Ken Young said

    chào thầy. em đang làm đồ án xây dựng mail server bằng java socket. Nhưng em gặp phải lỗi java.net.ConnectException: Connection timed out: connect. Thầy có thể giải thích và sữa được không ạ. Còn 1 tuần nữa là em nộp bài rồi ạ.
    Đây là thông số:
    server: chọn số hiệu cổng để kết nối: 1234
    số lượng client có thể kết nôi: 1
    client: chọn địa chỉ kết nối: 192.168.1.34
    chọn số hiệu cổng kết nối: 1234
    đây là code:

    /////Server:
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Server extends Frame{
    public static String strHostAddress = “”;
    public static int intPortNumber = 0, intMaxClients = 0;
    public static Vector vecConnectionSockets = null;
    public static Server objFileTransfer;
    public static String strFileName = “”,strFilePath =””;
    public static Socket clientSocket = null;
    public static ObjectOutputStream outToServer = null;
    public static ObjectInputStream inFromServer = null;
    public static void main(String [] args) throws IOException{
    BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    System.out.print(“Chon so hieu cong de ket noi: “);
    System.out.flush();
    intPortNumber = Integer.parseInt(stdin.readLine());
    System.out.print(“So luong may Client co the ket noi: “);
    objFileTransfer = new Server();
    }
    public Label lblSelectFile;
    public Label lblTitle;
    public Label lblStudentName;
    public Label lblStudentClass;
    public TextField tfFile;
    public Button btnBrowse;
    public Button btnSend;
    public Button btnReset;
    public Server(){
    setTitle(“Chuong trinh truyen File phia Server”);
    setSize(400,300);
    setLayout(null);
    addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}} );
    lblTitle = new Label(“Chuong trinh truyen File qua mang dua tren Socket TCP”);
    add(lblTitle);
    lblTitle.setBounds(50,30,450,50);
    lblSelectFile = new Label(“Duong dan file can truyen:”);
    add(lblSelectFile);
    lblSelectFile.setBounds(50,100,200,20);
    lblStudentName = new Label(“Sinh vien thuc hien:Dang Minh Khai”);
    add(lblStudentName);
    lblStudentName.setBounds(130,250,200,20);
    lblStudentClass = new Label(“Lop: 11I1″);
    tfFile = new TextField(“”);
    add(tfFile);
    tfFile.setBounds(50,134,200,20);
    btnBrowse = new Button(“Chon File”);
    btnBrowse.addActionListener(new buttonListener());
    add(btnBrowse);
    btnBrowse.setBounds(283,133,70,20);
    btnSend = new Button(“Gui”);
    btnSend.addActionListener(new buttonListener());
    add(btnSend);
    btnSend.setBounds(100,200,50,20);
    btnReset = new Button(“Xoa”);
    btnReset.addActionListener(new buttonListener());
    add(btnReset);
    btnReset.setBounds(170,200,50,20);
    show();
    vecConnectionSockets = new Vector();
    try{
    ServerSocket welcomeSocket = new ServerSocket(intPortNumber,intMaxClients);
    while (true) {
    vecConnectionSockets.addElement(new ThreadedConnectionSocket(welcomeSocket.accept()));
    Thread.yield();
    }
    } catch (IOException ioe) { System.out.println(ioe);}
    }
    public static String showDialog(){
    FileDialog fd = new FileDialog(new Frame(),”Select File…”,FileDialog.LOAD);
    fd.show();
    return fd.getDirectory()+fd.getFile();
    }
    private class buttonListener implements ActionListener{
    public void actionPerformed (ActionEvent ae){
    byte [] arrByteOfSentFile = null;
    if (ae.getSource() == btnBrowse){
    strFilePath = showDialog();
    tfFile.setText(strFilePath);
    int intIndex = strFilePath.lastIndexOf(“\\”);
    strFileName = strFilePath.substring(intIndex+1);
    }
    if (ae.getSource() == btnSend){
    try{
    FileInputStream inFromHardDisk = new FileInputStream(strFilePath);
    int size = inFromHardDisk.available();
    arrByteOfSentFile = new byte[size];
    inFromHardDisk.read(arrByteOfSentFile,0,size);
    for (int i=0;i<vecConnectionSockets.size();i++)
    {
    ThreadedConnectionSocket tempConnectionSocket = (ThreadedConnectionSocket)vecConnectionSockets.elementAt(i);
    tempConnectionSocket.outToClient.writeObject("IsFileTransfered");
    tempConnectionSocket.outToClient.flush();
    tempConnectionSocket.outToClient.writeObject(strFileName);
    tempConnectionSocket.outToClient.flush();
    tempConnectionSocket.outToClient.writeObject(arrByteOfSentFile);
    tempConnectionSocket.outToClient.flush();
    }
    JOptionPane.showMessageDialog(null, "Ban da gui thanh cong file toi Client","Xac nhan",JOptionPane.INFORMATION_MESSAGE);
    } catch (Exception ex) {}
    }
    if (ae.getSource() == btnReset) {
    tfFile.setText("");
    }
    }
    }
    class ThreadedConnectionSocket extends Thread {
    public Socket connectionSocket;
    public ObjectInputStream inFromClient;
    public ObjectOutputStream outToClient;
    public ThreadedConnectionSocket (Socket s) {
    connectionSocket =s;
    try{
    outToClient = new
    ObjectOutputStream(connectionSocket.getOutputStream());
    outToClient.flush();
    inFromClient = new
    ObjectInputStream(connectionSocket.getInputStream());
    } catch (Exception e) {System.out.println(e);}
    start();
    }
    public void run(){
    try{
    int intFlag = 0;
    String strFileName = "";
    while (true) {
    Object objRecieved = inFromClient.readObject();
    switch (intFlag) {
    case 0:
    if (objRecieved.equals("IsFileTransfered")) {
    intFlag++;
    }
    break;
    case 1:
    strFileName = (String) objRecieved;
    int intOption =
    JOptionPane.showConfirmDialog(null,connectionSocket.getInetAddress().getHostName()+"dang gui"+strFileName+"!\nBan co chac chan nhan khong?","Thong bao",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
    if (intOption == JOptionPane.YES_OPTION)
    {
    intFlag++;
    } else
    {
    intFlag = 0;
    }
    break;
    case 2:
    byte [] arrByteOfReceivedFile = (byte[])objRecieved;
    FileOutputStream outToHardDisk = new FileOutputStream(strFileName);
    outToHardDisk.write(arrByteOfReceivedFile);
    intFlag = 0;
    JOptionPane.showMessageDialog(null,"Ban da nhan thanh cong file tu Client","Xac nhan",JOptionPane.INFORMATION_MESSAGE);
    break;
    }
    Thread.yield();
    }
    } catch (Exception e) {System.out.println(e);}
    }
    }
    }

    ////Client:

    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Client extends Frame {
    public static String strHostAddress = "";
    public static int intPortNumber = 0, intMaxClients = 0;
    public static Vector vecConnectionSockets = null;
    public static Client objFileTransfer;
    public static String strFileName = "", strFilePath= "";
    public static Socket clientSocket = null;
    public static ObjectOutputStream outToServer = null;
    public static ObjectInputStream inFromServer = null;
    public static void main (String [] args) throws IOException {
    BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Nhap dia chi cua may server de ket noi: ");
    System.out.flush();
    strHostAddress = stdin.readLine();
    System.out.print("Nhap dia chi cong de ket noi voi may server: ");
    System.out.flush();
    intPortNumber = Integer.parseInt(stdin.readLine());
    objFileTransfer = new Client();
    }
    public Label lblSelectFile;
    public Label lblTitle;
    public Label lblStudentName;
    public Label lblStudentClass;
    public TextField tfFile;
    public Button btnBrowse;
    public Button btnSend;
    public Button btnReset;
    public Client(){
    setTitle("Chuong trinh truyen File phia Client");
    setSize(400,300);
    setLayout(null);
    addWindowListener(new WindowAdapter (){ public void windowClosing (WindowEvent e){System.exit(0);}});
    lblTitle = new Label("Chuong trinh truyen File may Client ");
    add(lblTitle);
    lblTitle.setBounds(50,30,450,50);
    lblSelectFile = new Label("Duong dan file can truyen: ");
    add(lblSelectFile);
    lblSelectFile.setBounds(50,100,200,20);
    lblStudentName = new Label("Sinh vien thuc hien:Dang Minh Khai");
    add(lblStudentName);
    lblStudentName.setBounds(130,250,200,20);
    lblStudentClass = new Label("Lop: 11I1");
    add(lblStudentClass);
    lblStudentClass.setBounds(130, 270, 100, 20);
    tfFile = new TextField("");
    add(tfFile);
    tfFile.setBounds(50,134,200,20);
    btnBrowse = new Button("Chon File");
    btnBrowse.addActionListener(new buttonListener());
    add(btnBrowse);
    btnBrowse.setBounds(283,133,70,20);
    btnSend = new Button("Gui");
    btnSend.addActionListener(new buttonListener());
    add(btnSend);
    btnSend.setBounds(100,200,50,20);
    btnReset = new Button("Xoa");
    btnReset.addActionListener(new buttonListener());
    add(btnReset);
    btnReset.setBounds(170,200,50,20);
    show();
    try {
    clientSocket = new Socket (strHostAddress,intPortNumber);
    outToServer = new ObjectOutputStream(clientSocket.getOutputStream());
    int intFlag = 0;
    while (true) {
    Object objRecieved = inFromServer.readObject();
    switch (intFlag) {
    case 0:
    if (objRecieved.equals("IsFileTransfered")) {
    intFlag++;
    }
    break;
    case 1:
    strFileName = (String) objRecieved;
    int intOption =
    JOptionPane.showConfirmDialog(this,clientSocket.getInetAddress().getHostName()+ "dang gui" +strFileName+"!\nBan co chac chan nhan khong?","Thong bao",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
    if (intOption == JOptionPane.YES_OPTION) {
    intFlag++;
    } else {
    intFlag = 0;
    }
    break;
    case 2:
    byte [] arrByteOfReceivedFile = (byte[]) objRecieved;
    FileOutputStream outToHardDisk = new FileOutputStream(strFileName);
    outToHardDisk.write(arrByteOfReceivedFile);
    intFlag = 0;
    JOptionPane.showMessageDialog(this,"Ban dong y nhan file nay tu Server","Thong bao",JOptionPane.INFORMATION_MESSAGE);
    break;
    }
    Thread.yield();
    }
    } catch (Exception e) {System.out.println(e);}
    }
    public static String showDialog() {
    FileDialog fd = new FileDialog(new Frame(),"Select file…",FileDialog.LOAD);
    fd.show();
    return fd.getDirectory()+fd.getFile();
    }
    private class buttonListener implements ActionListener {
    public void actionPerformed (ActionEvent ae) {
    byte[] arrByteOfSentFile =null;
    if (ae.getSource() == btnBrowse) {
    strFilePath = showDialog();
    tfFile.setText(strFilePath);
    int intIndex = strFilePath.lastIndexOf("\\");
    strFileName = strFilePath.substring(intIndex+1);
    }
    if(ae.getSource()==btnSend) {
    try{
    FileInputStream inFromHardDisk = new FileInputStream(strFilePath);
    int size = inFromHardDisk.available();
    arrByteOfSentFile = new byte[size];
    inFromHardDisk.read(arrByteOfSentFile, 0, size);
    outToServer.writeObject("IsFileTransfered");
    outToServer.flush();
    outToServer.writeObject(strFileName);
    outToServer.flush();
    outToServer.writeObject(arrByteOfSentFile);
    outToServer.flush();
    JOptionPane.showMessageDialog(null, "Ban da gui thanh cong file toi Server","Xac nhan",JOptionPane.INFORMATION_MESSAGE);
    } catch (Exception ex) {}
    }
    if(ae.getSource() == btnReset) {
    tfFile.setText("");
    }
    }
    }
    }
    class ThreadedConnectionSocket extends Thread {
    public Socket connectionSocket;
    public ObjectInputStream inFromClient;
    public ObjectOutputStream outToClient;
    public ThreadedConnectionSocket (Socket s) {
    connectionSocket =s;
    try{
    outToClient = new ObjectOutputStream(connectionSocket.getOutputStream());
    outToClient.flush();
    inFromClient = new ObjectInputStream(connectionSocket.getInputStream());
    } catch (Exception e) {System.out.println(e);}
    start();
    }
    public void run() {
    try{
    int intFlag = 0;
    String strFileName = "";
    while(true) {
    Object objRecieved = inFromClient.readObject();
    switch(intFlag) {
    case 0:
    if(objRecieved.equals("IsFileTransfered")) {
    intFlag++;
    }
    break;
    case 1:
    strFileName = (String) objRecieved;
    int intOption =
    JOptionPane.showConfirmDialog(null,connectionSocket.getInetAddress().getHostName()+"dang gui" +strFileName+"!\nBan co chac chan nhan khong?","Thong bao",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
    if (intOption == JOptionPane.YES_OPTION) {
    intFlag++;
    } else {
    intFlag = 0;
    }
    break;
    case 2:
    byte[] arrByteOfReceivedFile = (byte[]) objRecieved;
    FileOutputStream outToHardDisk = new FileOutputStream(strFileName);
    outToHardDisk.write(arrByteOfReceivedFile);
    intFlag = 0;
    JOptionPane.showMessageDialog(null,"Ban da gui thanh cong file toi Server","Xac nhan",JOptionPane.INFORMATION_MESSAGE);
    break;
    }
    Thread.yield();
    }
    }catch (Exception e) {System.out.println(e);}
    }
    }

  529. Nguyễn hoàng anh said

    thưa thầy , nhóm em đang thực hành kết nối CSDL Oracle từ JAVA bằng Eclipse nhưng hiện tại nhóm em không rõ làm thế nào để có thể kết nối CSDL và chỉnh sửa csdl đó thông qua Eclipse. xin thầy hướng dẫn giúp em!

  530. hien said

    chào thầy, em đang làm một từ điển nhưng em lại không thể lưu hay lấy một từ từ file txt, thầy có thể giúp em được không ạ. Đây là bài của em:

    http://www.mediafire.com/download/tfwnklorwl1hh4l/dictionary3.rar

    Em cảm ơn thầy

  531. LÊ QUỐC BẢO said

    Thầy giúp em cái lỗi này với,
    – Em đang làm đồ án tốt nghiệp (lập trình web java), lúc đầu làm web run project vẫn bình thường, nhưng giờ chạy thi run thì lại báo lỗi không run đước:
    F:\myHOCTAP\SEM 4\Do An\Radiocabs-Eproject\nbproject\build-impl.xml:1038: The module has not been deployed.
    See the server log for details.
    – Và dòng 1038 là:

    – Em cảm ơn thầy trước ạ.

  532. LÊ QUỐC BẢO said

    - Và dòng 1038 là: ‘

    – Em cảm ơn thầy trước ạ.

  533. Kính thưa thầy Võ Văn Hải!

    Ở cơ quan em đang dùng phần mềm Dspace để quản lý tài liệu điện tử.
    Về cơ bản phần mềm quản lý tài liệu Dspace – khi người dùng click vào phần xem tài liệu (PDF) thì sẽ cho phép down load file đó về đọc trên máy. Nhưng em có nhờ một số Bạn bè chỉnh hộ phần đó bằng 1 tool PDF view (nghĩa là chương trình này sẽ lấy ID từ phần mềm Dspace để duyệt). Hiện nay em muốn nâng cấp phần mềm Dspace lên phiên bản cao hơn vì nhiều tiện ích (đồng nghĩa phải chỉnh lại cấu hình trong dspace để nhận lại cái tool PDF view kia). Ví dụ trong phiển bản dspace mới sẽ phải thêm vài dòng lệnh vào file “Messages” trong thư mục “D:\dspace\webapps\jspui\WEB-INF\classes” như sau:

    org.dspace.app.webui.jsptag.ItemTag.url = http://172.16.20.8/View/default.aspx
    org.dspace.app.webui.jsptag.ItemTag.IDFile =application/pdf
    org.dspace.app.webui.jsptag.ItemTag.location = ?loc=
    org.dspace.app.webui.jsptag.ItemTag.fifename = &id=

    ghi chú thêm:
    địa chỉ chạy dspace: http://172.16.20.10:8888/dspace
    địa chỉ chạy tool PDF view: http://172.16.20.8/View/default.aspx

    => http://172.16.20.8/View/default.aspx cái tool này em đã cài đặt thành công và chạy bình thường nhưng không thể lấy được file PDF bên phần mềm Dspace để đọc.

    Bạn bè em hiện nay đi công tác xa nên em không thể liên lạc được. Nhưng em có nhớ ngày trước Bạn ý bảo phải biên dịch một số trong phần mềm dspace mới nhận được. Em mới chỉ thêm được

    org.dspace.app.webui.jsptag.ItemTag.url = http://172.16.20.8/View/default.aspx
    org.dspace.app.webui.jsptag.ItemTag.IDFile =application/pdf
    org.dspace.app.webui.jsptag.ItemTag.location = ?loc=
    org.dspace.app.webui.jsptag.ItemTag.fifename = &id=
    còn phải chỉnh ở đâu nữa thì em không rõ.

    Mong thầy Hải có thể gợi ý hoặc có thể remote vào máy của em có cài đặt phần mềm rồi chỉ giúp em với.

    Xin cảm ơn thầy nhiều!

    Email của em: tahongdongvfu@gmail.com

  534. IrisSarkorzy said

    Thầy ơi em đang bắt đầu học Struts nhưng còn mơ hồ quá và hiện tại em bị dính lỗi này mong thầy giúp đỡ
    HTTP Status 500 –

    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: An exception occurred processing JSP page /Home.jsp at line 13

    10:
    11:
    12: �ây là nút nhấn
    13:
    14:
    15:

    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause

    The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. – [unknown location]
    org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:60)
    org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44)
    org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48)
    org.apache.jsp.Home_jsp._jspx_meth_s_005fsubmit_005f0(Home_jsp.java:95)
    org.apache.jsp.Home_jsp._jspService(Home_jsp.java:68)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

    Apache Tomcat/6.0.16

    Với lại cho em hỏi những lib trong project em copy từ project khác nên cũng ko biết là struts 1.x hay 2.x mà sao khi em extends ActionForm trong 1 class thì eclipse không hỗ trợ,chỉ có ActionSupport thôi

  535. Đoàn Lê Phú Vinh said

    hiện e đang học sem 4 về web java,nhưng có khúc mắc là e không biết gì về java,đã từng học java nhưng mất căng bản trầm trọng,ai có phương pháp nào tự học cũng như tài liệu thì giúp e với,sắp ra trường mà giờ thì còn lơ mơ quá,ai có liên hệ với e qua gmail… doanlephuvinh@gmail.com … e cám ơn nhìu,cũng như ai có thể dạy e lấy lại căn bản java và java web nữa …. e rất biết ơn,mong được hồi âm của thầy cũng như các bạn. !!!

  536. Mạnh Iris said

    thầy ơi,em đang làm đồ án chuyên đề web bằng Struts 2 nhưng gặp phải vấn đề đa ngôn ngữ.Em nghe nói trong java dùng file propertise nhưng em chưa biết làm.Mong thầy hướng dẫn giúp em,đang gấp lắm ạ!

  537. Võ Văn Hải said

    Chỗ này có hướng dẫn đầy đủ nè: http://www.mkyong.com/struts2/struts-2-i18n-or-localization-example/

  538. Phong said

    thầy ơi e muốn làm một cái demo thuật toán Fuzzy C mean bằng java, thầy hướng dẫn e với đk k al?

  539. thầy ơi thầy giúp e cái này…e đang học môn thiết kế hướng đối tượng ak…bài tập về nhà mà e k biết làm sao thầy giúp với ạ 23h ngày 4/4/2014 là nộp bài rùi đề bài:
    Exercise 2: Hệ thống nhận lệnh command từ người dùng và thực hiện Command đó. Dựa vào thông tin từ người dùng mà lệnh command tương ứng sẽ được thi hành. Hãy sử dụng mẫu factory để viết chương trình này.

    <> <——– Manipulation

    |———-^————————————————|
    ListCommand,,HelpCommand,,RegionCommand ( 3 cái này là của Command).

    Thầy giúp e với thanks thầy nhiều……hoặc ai biết có thể giúp mình với nhé

  540. hocjava said

    Thầy có giao diện 1 bài quản lý bằng java nào không cho em xin với? Cảm ơn thầy

  541. dat said

    //sort
    out.println(createSortingForm());

    String sort = request.getParameter(“sort”);
    if (sort == null) {
    selectQ = “select * from Student”;
    } else if (sort.equals(“name”)) {
    selectQ = “select * from Student order by name”;
    } else {
    selectQ = “select * from Student order by sex”;
    }

    //fill
    out.println(FillterForm());
    String fill = request.getParameter(“fill”);
    if (fill == null){
    selectQ = “select * from Student”;
    }else if (fill.equalsIgnoreCase(“HN”)){
    selectQ = “select * from Student where adress = ‘HN'”;
    }else if (fill.equalsIgnoreCase(“HCM”)){
    selectQ = “select * from Student where adress =’HCM'”;
    }else{
    selectQ = “select * from Student where adress =’DN'”;
    }

    thầy ơi đây là 2 đoạn em làm trong servlet nhưng mà khi em viết xong đoạn fill chạy được r,thì test phần sort lại không chạy, vậy có cách nào để làm cho 2 cái cùng chạy không

  542. Minh said

    Em chào Thầy, thầy có thể cho em nói giảng sơ qua cho em biết về JSF và Pricesface, mối quan hệ giữa chúng được không ạ? Em cảm ơn thầy nhiều!

  543. Nguyễn Tuấn said

    Em chào thầy ạ! Em đang tìm hiểu vể OSGi Framework trên nền java. Vì vậy em muốn hỏi là: Thầy đã làm với framework này chưa ạ! Nếu đã từng làm thì có thể cho em chút kinh nghiệm và tài liệu tham khảo được không ạ! Vì mới học nên còn nhiều thú còn vướng mắc. Mong được thầy giải đáp! Em xin cám ơn ạ!

  544. thuhang said

    Thầy cho e hỏi e bị lỗi này thì sửa làm sao ạ? nếu thiếu gì đó cần phải dowload thì thầy cho e xin links với ạ.

    SEVERE: null
    java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver

    E cảm ơn Thầy!

  545. Võ Văn Hải said

    không cần phải download cái gì hết.

  546. duong said

    thầy ơi giúp em với.
    Em không thể kết nối được cơ sở dữ liệu . Nó báo cổng 1433 của em bị lỗi.Giờ phải làm thế nào ạ.Thầy giúp em với :(

    Lỗi thế này ạ :
    SEVERE: null
    com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: “Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.”.

  547. Em chào thầy!
    Em đang làm trang web bán hàng sử dụng hệ quản trị SQL server. Nhưng có vấn đề là kết nối đơn thuần và không dùng store để thực thi dẫn đến việc khi nhiều người dùng cùng thao tác thì tranh chấp bản ghi trong csdl. Bây giờ em muốn xử lý tranh chấp trên hibernate, thầy có source demo xử lý tranh chấp trên hibernate không ạ. thấy có thể gửi cho em nghiên cứu được không ạ.

    Em xin chân thành cảm ơn

  548. TriPhuc said

    ở đây có ai bik về lập trình udp socket được viết bằng ngôn ngử Java ko ạ.ai có tài liệu cho e tham khảo với

  549. dung22 said

    thầy ơi cho em hỏi
    các đặc tính factory,single,component của java

  550. Võ Văn Hải said

    Với JDBC code thì trong khi tạo ResultSet em có tham số về concurency. em xem trong các ví dụ của blog.
    Với Hibernate thì ta cấu hình. vấn đề bên dưới hibernate đảm bảo.

  551. Võ Văn Hải said

    Mở tool SQL Server Configuration Manager lên rồi chọn SQLServer Network Configuration sau đó chọn mục Protocol for ????SQLServer, thấy bên phải hiện lên vài thứ trong đó có TCP/IP. Enable nó lên.

  552. Trung Nguyen said

    Em có chỉnh sửa lại một chút đoạn code hơi rườm.

    Thầy cho e hỏi chút xíu. Là e có lập trình với Client-Server. Trong đó thì server cho phép nhiều client kết nối. Server có CSDL là Access.
    Thì ở đây Server của em sẽ thực hiện lấy đối tượng trong CSDL và gửi cho Client, nhưng có điều là Client của em chỉ hiển thi được sinh viên đầu tiên mà không hiển thị được tất cả sinh viên trong CSDL bên server gửi về.

    ********************************************************************************************************************
    Đây là code qlsvimplement.java

    import java.io.*;
    import java.util.*;
    import java.net.*;

    public class qlsvimplement implements Serializable{

    String mssv=null;
    String hoten=null;

    public qlsvimplement() {
    }

    public String getMSSV()
    {
    return mssv;
    }
    public void setMSSV(String mssv)
    {
    this.mssv=mssv;
    }

    public String getHoten()
    {
    return hoten;
    }
    public void setHoten(String hoten)
    {
    this.hoten=hoten;
    }

    *****************************************************************************************************************************
    *****************************************************************************************************************************
    Đây là code plsvclient.java

    import java.io.*;
    import java.util.*;
    import java.net.*;

    public class plsvclient {

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

    Scanner sc=new Scanner(System.in);

    ObjectOutputStream oos=null;
    ByteArrayOutputStream baos=null;

    ObjectInputStream ois=null;
    ByteArrayInputStream bais=null;

    Socket s=new Socket(“localhost”,9898);

    oos=new ObjectOutputStream(s.getOutputStream());
    ois=new ObjectInputStream(s.getInputStream());

    while(s.isConnected())
    {

    qlsvimplement qlsv=new qlsvimplement();

    qlsv=(qlsvimplement)ois.readObject();

    System.out.println(“Server gui ve : “+qlsv.getMSSV());

    }

    }
    }

    *******************************************************************************************************************************************
    *******************************************************************************************************************************************
    Đây là code qlsvserver.java

    Ở đây em đã tạo CSDL có tên là: qlsinhvien.mdb
    table: tablesinhvien

    import java.io.*;
    import java.util.*;
    import java.net.*;
    import java.sql.*;

    public class qlsvserver extends Thread {
    private ServerSocket ss;

    public static void main(String[] args) throws Exception{
    new qlsvserver();
    }

    /////////////////////////////////////////////////////////////
    public qlsvserver()throws Exception{
    ss=new ServerSocket(9898);
    System.out.println(“Server running on port “+9898);
    this.start();
    }

    /////////////////////////////////////////////////////////////
    public void run(){
    while(true){
    try{
    System.out.println(“Waiting for client…”);
    Socket s=ss.accept();
    System.out.println(“Accepting a connection from:”+s.getInetAddress());
    Connect c=new Connect(s);
    }
    catch(Exception e){
    System.out.println(e);
    }
    }
    }
    ////////////////////////////////////////////////////////////////////

    }

    class Connect extends Thread{
    private Socket client=null;
    private ObjectInputStream ois;
    private ObjectOutputStream oos;

    Connection conn = null;//tao ket noi
    ResultSet rs = null;//
    Statement stat = null;//

    String mssv=null;
    String hoten=null;
    String id=null;

    public Connect(){
    }

    public Connect(Socket client){
    this.client=client;
    try{
    ois=new ObjectInputStream(client.getInputStream());
    oos=new ObjectOutputStream(client.getOutputStream());
    }
    catch(Exception e){
    System.err.println(e);
    }
    this.start();
    }

    public void xem()
    {

    String stmssv=””;
    String sthoten=””;
    qlsvimplement qlsv=new qlsvimplement();

    qlsvmangsv qlm=new qlsvmangsv();

    try
    {

    while (rs.next())
    {

    mssv=rs.getString(2);

    qlsv.setMSSV(mssv);
    oos.writeObject(qlsv);

    }

    }catch(SQLException e)
    {
    System.out.println(“Loi SQL Exception”);
    }catch(IOException e)
    {
    System.out.println(“Loi IO Exception”);
    }

    }

    public void dbAccess()
    {
    try
    {
    Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
    String database =”jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=qlsinhvien.mdb;”;
    conn = DriverManager.getConnection(database, “”, “”);
    stat = conn.createStatement();
    }catch(Exception ex)
    {
    ex.printStackTrace();
    }
    }

    public void Scrollable(String table)//Mo bang
    {
    try
    {
    stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = stat.executeQuery(“select * from “+ table);
    }catch(SQLException e){
    System.out.println(“Loi mo bang ” + table);
    }
    }

    public void ScrollResultSet()
    {
    try{
    rs = stat.executeQuery(“select * from tablesinhvien”);
    }catch(SQLException e){
    System.out.println(e);
    }
    }

    public void run()
    {

    try
    {

    System.out.println(“chay tot”);
    dbAccess();
    Scrollable(“tablesinhvien”);
    ScrollResultSet();
    xem();

    }catch(Exception e)
    {
    System.err.println(“Loi Exception”);
    }
    }

    }

    **************************************************************************8
    Thì kết quả bên client chỉ hiển thi:

    Server gui ve : 1002001
    Server gui ve : 1002001
    Server gui ve : 1002001
    Server gui ve : 1002001

    *****************************************************************************
    Trong khi kết quả chính xác phải là:

    Server gui ve : 1002001
    Server gui ve : 1002002
    Server gui ve : 1002003
    Server gui ve : 1002004
    ********************************************************************************
    Mong thầy giúp e!

  553. ngoc anh said

    em chào thầy. Hiện tại em đang làm luận văn về nghiên cứu và thử nghiệm thuật toán khai phá đồ thị con phổ biến. Sourecode được viết bằng java chạy trên Netbean. khi em biên dịch một số tệp thì báo lỗi
    Note: D:\Final\FSM\src\detai\Demo.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    và tệp Demo khi em biên dịch thì báo lỗi
    Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1
    at detai.Demo.main(Demo.java:16)
    Java Result: 1
    Em xin thầy hướng dẫn cách em Debug lỗi trên.

  554. ngoc anh said

    Xin thầy cho em email của thầy. Em sẽ gửi Sourecode và mong thầy bớt chút thời gian Debug giúp em. Em chân thành cảm ơn thầy. Vì Project này nhiều tệp nên em không post qua comment được.

  555. Lê Văn Thọ said

    Em chào thầy.
    Thầy có biết về cách tạo và active license cho 1 doanh nghiệp không ạ.
    Em cho 1 phần mềm muốn tạo license đó, khi người dùng chạy phần mềm nhập license vào nhưng theo cơ chế offline vậy thì làm sao mình có thể kiểm tra được license đó đã được mua bản quyền chưa ạ?

  556. Nguyễn Anh Duy said

    em chào thầy hiện tại e mới bắt đầu học về java và e có bài tập như sau
    1. Mo ta: viet chuong trinh quan ly nhan vien bang Java.
    2. Yeu cau:
    – Viet console application
    – Database la file CSV. (tim hieu xem CSV la file gi, cach read/write file CSV, …)
    3. Chuc nang:
    – Them moi
    – Tim kiem bang ID
    – Tim kiem bang Name
    – Delete bang ID
    4. Cau truc file CSV.
    EmpID (integer), FirstName (string), LastName(string), Birthday(string), Gender(integer), Address(string), Phone(string), City(string)

    thầy có thể hướng dẫn để em làm không, tại e vừa bước chân vào mấy vấn đề này e không hiểu lắm, mong thầy giúp đỡ

  557. Ngoc Thach Ho said

    e mới bắt đầu học java, mục đích là làm assignment Mạng máy tính học trên trường trước, rồi e sẽ học thêm để hiểu biết về java nhiều hơn. Mọi người có thể hướng dẫn e cách học và nên bắt đầu từ đâu k ạ.

  558. Võ Văn Hải said

    xem ở mục about nhé

  559. Em có giúp một bạn làm đề tài lập trình socket viết ứng dụng Android truyền dữ liệu giữa máy tính và thiết bị android nhưng đang gặp chút vấn đề về kết nối giữa hai thiết bị
    cụ thể là : phần mềm em đã viết xong rồi nhưng khi nhập địa chỉ IP của máy tính trên ứng dụng android thì nó không có kết nối được.
    em viết bằng ngôn ngữ Java ! mong thầy có thể giúp em được không ạ !

  560. tuyen said

    Em chào Thầy.
    Thưa Thầy em đang làm một chương trình truyền file giữa máy tính và điện thoại smartphone android qua mạng wi-fi bằng socket nhưng đang gặp vấn đề là khi chọn một file bất kì từ máy tính rồi bấm gửi thì phía điện thoại (client) báo là “ứng dụng đã bị dừng đột ngột, bắt buộc đóng”. kết quả là không truyền được file đến điện thoại được. Mong Thầy sửa code giùm em. Em cám ơn Thầy nhiều.
    // Phía server
    package socketserver;
    import java.awt.Color;
    import java.awt.FileDialog;
    import java.awt.FlowLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;

    public class ServerTransferFile extends JFrame implements ActionListener {

    String strFileName=””, filePath=””;
    ServerSocket socketserver;
    Socket clientSocket;
    ObjectOutputStream oos;
    ObjectInputStream ois;
    FileInputStream fis;

    JPanel p=new JPanel(new FlowLayout(FlowLayout.CENTER,10,10));
    JPanel p2=new JPanel(new FlowLayout(FlowLayout.CENTER,180,30));
    JPanel p3=new JPanel(new FlowLayout(FlowLayout.CENTER,20,20));
    JPanel pHoTenSV=new JPanel(new FlowLayout(FlowLayout.CENTER,50,30));
    JLabel lblTieuDe;
    JLabel lblDuongDanFile;
    JTextField otextFile;
    JButton btnBrowser;
    JButton btnSend;
    JButton btnDelete;
    JButton btnThoat;
    JLabel lblHoTen;
    JLabel lblMSSV;
    byte[] arrgui;
    Thread th;

    public ServerTransferFile()
    {
    setTitle(“Chương trình truyen File phía Server”);
    setSize(800, 330);
    setResizable(true);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    lblTieuDe=new JLabel(“Chương trình truyền file qua mạng dựa trên Socket”);
    lblTieuDe.setFont(new Font(“Times New Roman”,Font.BOLD,25));
    lblTieuDe.setForeground(Color.red);
    lblDuongDanFile=new JLabel(“Đường dẫn File”);
    otextFile=new JTextField(“”, 50);
    btnBrowser=new JButton(“Chọn File”);
    btnSend=new JButton(“Gửi”);
    btnSend.setFont(new Font(“Times New Roman”,Font.BOLD,20));
    btnDelete=new JButton(“Xóa”);
    btnDelete.setFont(new Font(“Times New Roman”,Font.BOLD,20));
    btnThoat=new JButton(“Thoát”);
    btnThoat.setFont(new Font(“Times New Roman”,Font.BOLD,20));

    lblHoTen=new JLabel(“Thực hiện đề tài : Nguyễn Trọng Tuyên”);
    lblMSSV=new JLabel(“MSSV : 12106681″);

    p2.add(lblTieuDe);
    p.add(p2);
    p.add(lblDuongDanFile);
    p.add(otextFile);
    p.add(btnBrowser);
    p3.add(btnSend);
    p3.add(btnDelete);
    p3.add(btnThoat);
    p.add(p3);
    pHoTenSV.add(lblHoTen);
    pHoTenSV.add(lblMSSV);
    p.add(pHoTenSV);
    this.add(p);

    btnBrowser.addActionListener(this);
    btnSend.addActionListener(this);
    btnDelete.addActionListener(this);
    btnThoat.addActionListener(this);
    th = new Thread()
    {

    @Override
    public void run() {
    try {
    socketserver = new ServerSocket(9999);
    System.out.println(“ready”);
    while(true)
    {

    clientSocket=socketserver.accept();
    JOptionPane.showMessageDialog(null, “Có Client kết nối”,”Thông báo”,JOptionPane.INFORMATION_MESSAGE);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    };
    th.start();
    }

    private String showDialog() {
    FileDialog dl=new FileDialog(new JFrame(),”Select File”,FileDialog.LOAD);
    dl.setVisible(true);
    return dl.getDirectory()+dl.getFile();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource()==btnBrowser)
    {
    filePath=showDialog();
    otextFile.setText(filePath);
    int index=filePath.lastIndexOf(“\\”);
    strFileName=filePath.substring(index+1);
    }
    if(e.getSource()==btnSend)
    {
    try {
    fis = new FileInputStream(filePath);

    try {
    int size=fis.available();
    arrgui=new byte[size];
    fis.read(arrgui,0,size);
    oos=new ObjectOutputStream(clientSocket.getOutputStream());
    oos.writeObject(strFileName);
    oos.flush();
    oos.writeObject(arrgui);
    oos.flush();
    //oos.close();
    //JOptionPane.showMessageDialog(null,”Bạn đã gửi file thành công đến Client”,”Xác nhận”,JOptionPane.INFORMATION_MESSAGE);
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }

    } catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    //e1.printStackTrace();
    JOptionPane.showMessageDialog(null, “Chưa chọn File cần gửi!”, “Thông báo”,JOptionPane.INFORMATION_MESSAGE);
    }
    catch(Exception ex)
    {
    JOptionPane.showMessageDialog(null, “Chưa có Client kết nối!!”, “Thông báo”,JOptionPane.INFORMATION_MESSAGE);
    }
    }
    if(e.getSource()==btnDelete)
    {
    otextFile.setText(“”);
    }
    if(e.getSource()==btnThoat)
    {
    System.exit(0);
    }
    }

    public static void main(String[] args) {
    new ServerTransferFile().setVisible(true);
    }
    }

    // ———– Phía client——————
    package client_receive;

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import phiaclient.com.R;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

    public class ReceiveClient extends Activity {

    TextView tuade;
    TextView socong;
    EditText editportnum;
    TextView ipadd;
    EditText editipadd;
    Button ketnoi;
    TextView ten;
    TextView ms;
    Socket socketclient;
    Thread th;
    int cong=9999;
    byte[] arrnhan;
    FileOutputStream fos;
    ObjectInputStream ois;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.receive_layout);

    tuade=(TextView) findViewById(R.id.tuade);
    socong=(TextView) findViewById(R.id.port);
    editportnum=(EditText) findViewById(R.id.editport);
    ipadd=(TextView) findViewById(R.id.ip);
    editipadd=(EditText) findViewById(R.id.editipadd);
    ketnoi=(Button) findViewById(R.id.btnketnoi);
    ten=(TextView) findViewById(R.id.ten);
    ms=(TextView) findViewById(R.id.ms);
    ketnoi.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    th=new Thread()
    {

    @SuppressLint(“SdCardPath”)
    @Override
    public void run() {
    // TODO Auto-generated method stub
    try {
    socketclient=new Socket(editipadd.getText().toString(), cong);
    ObjectInputStream ois=new ObjectInputStream(socketclient.getInputStream());
    try {
    arrnhan=(byte[]) ois.readObject();

    fos=new FileOutputStream(“/sdcard/DCIM/”);
    fos.write(arrnhan);
    fos.flush();

    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    };
    th.start();
    }
    });
    }
    }

  561. tuyen said

    Thầy xem giùm em, em đang còn rất ít thời gian.
    Em cám ơn Thầy nhiều.

  562. tuyen said

    Em chào Thầy.
    Như em có nối với Thầy. Chương trình em viết hiện đang gặp vấn đề : bên phía máy tính (server) chọn một file bất kì từ ổ đĩa rồi nhấn vào button gửi sang điện thoại (client) thì điện thoại thông báo là “ứng dụng đã bị đóng đột ngột, bắt buộc đóng” => không thể truyền file được. Mong Thầy xem chương trình sai chỗ nào Thầy xửa giùm cho em (nếu được mong Thầy kiểm tra càng nhanh càng tốt em đang rất gấp thời gian ).
    Em cám ơn Thầy nhiều.
    Chúc Cô một ngày vui vẻ.

    ——– phía server (máy tính)
    package socketserver;
    import java.awt.Color;
    import java.awt.FileDialog;
    import java.awt.FlowLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;

    public class ServerTransferFile extends JFrame implements ActionListener {

    String strFileName=””, filePath=””;
    ServerSocket socketserver;
    Socket clientSocket;
    ObjectOutputStream oos;
    ObjectInputStream ois;
    FileInputStream fis;

    JPanel p=new JPanel(new FlowLayout(FlowLayout.CENTER,10,10));
    JPanel p2=new JPanel(new FlowLayout(FlowLayout.CENTER,180,30));
    JPanel p3=new JPanel(new FlowLayout(FlowLayout.CENTER,20,20));
    JPanel pHoTenSV=new JPanel(new FlowLayout(FlowLayout.CENTER,50,30));
    JLabel lblTieuDe;
    JLabel lblDuongDanFile;
    JTextField otextFile;
    JButton btnBrowser;
    JButton btnSend;
    JButton btnDelete;
    JButton btnThoat;
    JLabel lblHoTen;
    JLabel lblMSSV;
    byte[] arrgui;
    Thread th;

    public ServerTransferFile()
    {
    setTitle(“Chương trình truyen File phía Server”);
    setSize(800, 330);
    setResizable(true);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    lblTieuDe=new JLabel(“Chương trình truyền file qua mạng dựa trên Socket”);
    lblTieuDe.setFont(new Font(“Times New Roman”,Font.BOLD,25));
    lblTieuDe.setForeground(Color.red);
    lblDuongDanFile=new JLabel(“Đường dẫn File”);
    otextFile=new JTextField(“”, 50);
    btnBrowser=new JButton(“Chọn File”);
    btnSend=new JButton(“Gửi”);
    btnSend.setFont(new Font(“Times New Roman”,Font.BOLD,20));
    btnDelete=new JButton(“Xóa”);
    btnDelete.setFont(new Font(“Times New Roman”,Font.BOLD,20));
    btnThoat=new JButton(“Thoát”);
    btnThoat.setFont(new Font(“Times New Roman”,Font.BOLD,20));

    lblHoTen=new JLabel(“Thực hiện đề tài : Nguyễn Trọng Tuyên”);
    lblMSSV=new JLabel(“MSSV : 12106681″);

    p2.add(lblTieuDe);
    p.add(p2);
    p.add(lblDuongDanFile);
    p.add(otextFile);
    p.add(btnBrowser);
    p3.add(btnSend);
    p3.add(btnDelete);
    p3.add(btnThoat);
    p.add(p3);
    pHoTenSV.add(lblHoTen);
    pHoTenSV.add(lblMSSV);
    p.add(pHoTenSV);
    this.add(p);

    btnBrowser.addActionListener(this);
    btnSend.addActionListener(this);
    btnDelete.addActionListener(this);
    btnThoat.addActionListener(this);
    th = new Thread()
    {

    @Override
    public void run() {
    try {
    socketserver = new ServerSocket(9999);
    System.out.println(“ready”);
    while(true)
    {

    clientSocket=socketserver.accept();
    JOptionPane.showMessageDialog(null, “Có Client kết nối”,”Thông báo”,JOptionPane.INFORMATION_MESSAGE);
    // fis=new FileInputStream(filePath);
    // int size=fis.available();
    // buffer=new byte[fis.available()];
    // fis.read(buffer,0,size);
    // oos=new ObjectOutputStream(clientSocket.getOutputStream());
    // oos.writeObject(strFileName);
    // oos.flush();
    // oos.writeObject(buffer);
    // oos.flush();;
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    };
    th.start();
    }

    private String showDialog() {
    FileDialog dl=new FileDialog(new JFrame(),”Select File”,FileDialog.LOAD);
    dl.setVisible(true);
    return dl.getDirectory()+dl.getFile();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource()==btnBrowser)
    {
    filePath=showDialog();
    otextFile.setText(filePath);
    int index=filePath.lastIndexOf(“\\”);
    strFileName=filePath.substring(index+1);
    }
    if(e.getSource()==btnSend)
    {
    try {
    fis = new FileInputStream(filePath);

    try {
    int size=fis.available();
    arrgui=new byte[size];
    fis.read(arrgui,0,size);
    oos=new ObjectOutputStream(clientSocket.getOutputStream());
    oos.writeObject(strFileName);
    oos.flush();
    oos.writeObject(arrgui);
    oos.flush();
    //oos.close();
    //JOptionPane.showMessageDialog(null,”Bạn đã gửi file thành công đến Client”,”Xác nhận”,JOptionPane.INFORMATION_MESSAGE);
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }

    } catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    //e1.printStackTrace();
    JOptionPane.showMessageDialog(null, “Chưa chọn File cần gửi!”, “Thông báo”,JOptionPane.INFORMATION_MESSAGE);
    }
    catch(Exception ex)
    {
    JOptionPane.showMessageDialog(null, “Chưa có Client kết nối!!”, “Thông báo”,JOptionPane.INFORMATION_MESSAGE);
    }
    }
    if(e.getSource()==btnDelete)
    {
    otextFile.setText(“”);
    }
    if(e.getSource()==btnThoat)
    {
    System.exit(0);
    }
    }

    public static void main(String[] args) {
    new ServerTransferFile().setVisible(true);
    }
    }

    —————– phía điện thoại (client)
    package client_receive;

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import phiaclient.com.R;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

    public class ReceiveClient extends Activity {

    TextView tuade;
    TextView socong;
    EditText editportnum;
    TextView ipadd;
    EditText editipadd;
    Button ketnoi;
    TextView ten;
    TextView ms;
    Socket socketclient;
    Thread th;
    int cong=9999;
    byte[] arrnhan;
    FileOutputStream fos;
    ObjectInputStream ois;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.receive_layout);

    tuade=(TextView) findViewById(R.id.tuade);
    socong=(TextView) findViewById(R.id.port);
    editportnum=(EditText) findViewById(R.id.editport);
    ipadd=(TextView) findViewById(R.id.ip);
    editipadd=(EditText) findViewById(R.id.editipadd);
    ketnoi=(Button) findViewById(R.id.btnketnoi);
    ten=(TextView) findViewById(R.id.ten);
    ms=(TextView) findViewById(R.id.ms);
    ketnoi.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    th=new Thread()
    {

    @SuppressLint(“SdCardPath”)
    @Override
    public void run() {
    // TODO Auto-generated method stub
    try {
    socketclient=new Socket(editipadd.getText().toString(), cong);
    ObjectInputStream ois=new ObjectInputStream(socketclient.getInputStream());
    try {
    arrnhan=(byte[]) ois.readObject();

    fos=new FileOutputStream(“/sdcard/DCIM/”);
    fos.write(arrnhan);
    fos.flush();

    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    };
    th.start();
    }
    });
    }
    }

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 2,215 other followers

%d bloggers like this: