Chuyển tới nội dung
Home » Java Swing Windows 10 | Tạo Project Java Swing Trong Netbeans

Java Swing Windows 10 | Tạo Project Java Swing Trong Netbeans

Java Swing using Eclipse IDE(2022)|Install Swing in Eclipse| Install WindowBuilder Plugin in Eclipse

Sự khác biệt giữa AWT và Swing

No. Java AWT Java Swing
1) Phụ thuộc nền tảng (Platform Dependent) Độc lập với nền tảng (Platform Independent)
2) Thành phần của AWT nặng Thành phần của Swing khá nhẹ
3) AWT không hỗ trợ pluggable look and feel. Swing hỗ trợ pluggable look and feel.
4) AWT có ít thành phần hơn Swing Swing cung cấp nhiều thành phần và các thành phần cũng mạnh mẽ hơn AWT như: bảng, danh sách, cuộn màn hình, trình chọn màu,..
5) AWT không tuân theo cấu trúc MVC (Model View Controller) Swing theo cấu trúc MVC

Java Layout Manager (trình quản lý bố cục Java)

Layout manager được sử dụng để bố trí (hoặc sắp xếp) các thành phần GUI java bên trong một container. Có nhiều layout manager, nhưng thường được sử dụng nhất là các loại sau đây:

Java BorderLayout

BorderLayout đặt các component vào tối đa năm khu vực: trên cùng, dưới cùng, trái, phải và trung tâm. Nó là trình quản lý bố cục mặc định cho mọi java JFrame

Java FlowLayout

FlowLayout là trình quản lý bố cục mặc định cho mọi JPanel. Nó lần lượt đưa ra các thành phần trong một hàng duy nhất.

Java Swing using Eclipse IDE(2022)|Install Swing in Eclipse| Install WindowBuilder Plugin in Eclipse
Java Swing using Eclipse IDE(2022)|Install Swing in Eclipse| Install WindowBuilder Plugin in Eclipse

Cấu trúc phân cấp lớp Java Swing

Phân cấp của API Java swing như liệt kê ở hình dưới đây:

Phân cấp API Java swing

Chú thích: Tất cả các thành phần trong swing được kế thừa từ lớp Jcomponent như JButton, JComboBox, JList, JLabel đều có thể được thêm vào lớp Container.

Container là các window như Frame và Dialog. Các container này chỉ có thể thêm một thành phần vào chính nó.

Java GridBagLayout

Đây là layout phức tạp nhất. Nó sắp xếp các component bằng cách đặt chúng trong một lưới ô, cho phép các component kéo dài nhiều hơn một ô.

Bước 8. Làm thế nào để tạo một chat frame như bên dưới?

Thử tự code trước khi nhìn vào lời giải bên dưới nhé!

//Usually you will require both swing and awt packages

// even if you are working with just swings.

import javax.swing.*;

import java.awt.*;

class gui {

public static void main(String args[]) {

//Creating the Frame

JFrame frame = new JFrame(“Chat Frame”);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(400, 400);

//Creating the MenuBar and adding components

JMenuBar mb = new JMenuBar();

JMenu m1 = new JMenu(“FILE”);

JMenu m2 = new JMenu(“Help”);

mb.add(m1);

mb.add(m2);

JMenuItem m11 = new JMenuItem(“Open”);

JMenuItem m22 = new JMenuItem(“Save as”);

m1.add(m11);

m1.add(m22);

//Creating the panel at bottom and adding components

JPanel panel = new JPanel(); // the panel is not visible in output

JLabel label = new JLabel(“Enter Text”);

JTextField tf = new JTextField(10); // accepts upto 10 characters

JButton send = new JButton(“Send”);

JButton reset = new JButton(“Reset”);

panel.add(label); // Components Added using Flow Layout

panel.add(tf);

panel.add(send);

panel.add(reset);

// Text Area at the Center

JTextArea ta = new JTextArea();

//Adding Components to the frame.

frame.getContentPane().add(BorderLayout.SOUTH, panel);

frame.getContentPane().add(BorderLayout.NORTH, mb);

frame.getContentPane().add(BorderLayout.CENTER, ta);

frame.setVisible(true);

Tổng hợp việc làm IT – Software trên VietnamWorksVietnamWorks InTECHTheo guru99

Mục lục

Như ở bài trước giới thiệu Java Swing mình đã đánh giá rằng đây là một công cụ có giao diện thân thiện với người mới bắt đầu lập trình Java Swing, hơn hết nó hỗ trợ kéo thả các thành phần giao diện và sinh code tương ứng.

Nhờ đó, chúng ta có thể quan sát trực quan giao diện của chúng ta sẽ trông thế nào. Nhiệm vụ chính của chúng ta chỉ là xử lý các sự kiện khi người dùng tương tác. Tuy nhiên không phải cứ cái gì cũng kéo thả là có thể ngon lành, đôi lúc chúng ta cần code một xíu có khi lại nhanh và gọn hơn là làm bằng cách kéo thả.

Java GUI: Full Course ☕ (FREE)
Java GUI: Full Course ☕ (FREE)

Ứng dụng của Java Swing

Java Swing được dùng để hỗ trợ tạo giao diện đồ hoạ người dùng (với Java).

Bộ công cụ này cung cấp các bộ điều khiển nâng cao như thanh trượt, colorpicker, Tree, TabbedPane và bảng điều khiển,..

Swing có những đặc điểm:

  • Độc lập với thiết bị
  • Có thể tuỳ chỉnh, mở rộng
  • Khá nhẹ
  • Có thể cấu hình

Ngoài ra bạn cũng có thể tùy chỉnh các điều khiển xoay một cách dễ dàng mà không ảnh hưởng đến các thành phần khác.

GUI trong Java là gì?

GUI (Graphical User Interface) trong Java là một trình tạo trải nghiệm trực quan cho các ứng dụng Java. Nó chủ yếu được làm bằng các thành phần đồ họa (graphical component) như button (nút), label (nhãn), window (cửa sổ), v.v. mà qua đó người dùng có thể tương tác với ứng dụng. GUI dễ sử dụng và đóng một vai trò quan trọng để xây dựng giao diện cho các ứng dụng Java.

Ví dụ về GUI trong Java

Nào, hãy bắt đầu khám phá GUI với Swing Java tutorial qua các ví dụ sau đây.

Ví dụ: Học lập trình Java GUI trong hướng dẫn Java GUI này

Bước 1. Sao chép đoạn code sau vào trình chỉnh sửa

import javax.swing.*;

class gui{

public static void main(String args[]){

JFrame frame = new JFrame(“My First GUI”);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(300,300);

JButton button = new JButton(“Press”);

frame.getContentPane().add(button); // Adds Button to content pane of frame

frame.setVisible(true);

Bước 2. Lưu lại, compile và chạy code.

Bước 3. Giờ hãy thêm một Button vào frame. Copy đoạn code bên dưới vào trình chỉnh sửa từ ví dụ Java GUI đã cho

import javax.swing.*;

class gui{

public static void main(String args[]){

JFrame frame = new JFrame(“My First GUI”);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(300,300);

JButton button1 = new JButton(“Press”);

frame.getContentPane().add(button1);

frame.setVisible(true);

Bước 4. Execute code. Bạn sẽ nhận được button như ảnh dưới

Bước 5. Để thêm hẳn 2 button? Copy đoạn code bên dưới vào trình chỉnh sửa

import javax.swing.*;

class gui{

public static void main(String args[]){

JFrame frame = new JFrame(“My First GUI”);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(300,300);

JButton button1 = new JButton(“Button 1”);

JButton button2 = new JButton(“Button 2”);

frame.getContentPane().add(button1);

frame.getContentPane().add(button2);

frame.setVisible(true);

Bước 6. Lưu, compile và chạy chương trình

Bước 7. Output trả ra không như mong đợi? Các button của bạn đang bị overlap rồi đó.

Java open a new GUI window 🗔
Java open a new GUI window 🗔

Container class là gì?

Container class (lớp vùng chứa) là các class có thể chứa các component khác trên đó. Vì vậy, để tạo Java GUI, chúng ta cần ít nhất một container object (đối tượng vùng chứa). Java Swing có 3 loại container.

  1. Panel (bảng điều khiển): là một container thuần túy và thực chất không phải là một window (cửa sổ). Mục đích duy nhất của Panel là tổ chức các component trên một window.
  2. Frame (khung): là một window hoàn chỉnh có đầy đủ title (tiêu đề) và các icon (biểu tượng).
  3. Dialog (hộp thoại): có thể được coi như một pop-up window sẽ bật ra khi một tin nhắn cần được hiển thị. Nó không phải là window hoàn chỉnh như Frame.

Các phương thức được sử dụng phổ biến của Component Class

Có một số phương thức trong lớp Component được sử dụng khá phổ biến, đó là:

Phương thức Mục đích
public void add(Component c) Bổ sung một thành phần trên một phần khác
public void setSize(int width,int height) Để cài đặt và tùy chỉnh kích cỡ của thành phần (chiều rộng, chiều cao)
public void setLayout(LayoutManager m) Để cài đặt Layout Manager cho thành phần
public void setVisible(boolean b) Để cài đặt tính nhìn thấy được (visible) của thành phần. Theo mặc định là false.
Create First Java GUI using Eclipse IDE [2023] | How to Install Swing in  Eclipse| Window Builder
Create First Java GUI using Eclipse IDE [2023] | How to Install Swing in Eclipse| Window Builder

Netbeans là gì?

NetBeans IDE là một công cụ hỗ trợ lập trình viết mã code miễn phí được cho là tốt nhất hiện nay, được sử dụng chủ yếu cho các lập trình viên phát triển Java tuy nhiên phần mềm có dung lượng khá là nặng dành cho các máy cấu hình có RAM, CPU tương đối cao để vận hành.

NetBeans IDE là môi trường phát triển tích hợp và cực kỳ cần thiết cho các lập trình viên, công cụ này có thể hoạt động tốt với rất nhiều nền tảng hệ điều hành khác nhau như Linux, Windows, MacOS,… là một mã nguồn mở cung cấp các tính năng cần thiết nhất nhăm tại ra các ứng dụng web, thiết bị di động, desktop.

NetBeans IDE hỗ trợ rất nhiều những ngôn ngữ lập trình như Python, Ruby, JavaScript, Groovy, C / C + +, và PHP.

Qua nhiều phiên bản cũ, nay công cụ lập trình NetBeans IDE đã cập nhật lên phiên bản 8.2 mới nhất có rất nhiều thay đổi và nâng cấp so với các phiên bản cũ hơn có thể kể đến như:

  • Nâng cao ngôn ngữ lập trình C và C++.
  • Nâng cấp, cải tiến các công cụ soạn thảo Profiler và Java.
  • Hỗ trợ Docker, PHP 7.
  • ECMAScript 6 và hỗ trợ thử nghiệm ECMAScript 7.
  • Nâng cấp, cải tiến HTML 5 và Javascript.

Để có thể cài đặt được NetBeans IDE các bạn phải cài đặt và cấu hình sẵn JDK trong máy thì mới cài đặt được. NetBean IDE được chia thành nhiều gói khác nhau để người dùng có thể tải về từng phần, tiết kiệm dung lượng, tùy theo nhu cầu của mình.

Giống với Notepad++, NetBean IDE có gợi ý cú pháp khá tốt, và còn nhiều tính năng khá thú vị như tự động căn chỉnh mã nguồn, Remote FTP, SVN …. Chính vì thế, nó được xem là môi trường phát triển không thể bỏ qua cho các lập trình viên.

Tạo project Java Swing trong netbeans

Bước 1. Mở ứng dụng NetBeans , New Project | Java | Java Application , nhấp Next , trên hộp thoại “New Java Application ” điền các thông tin trong hộp thoại.

Sau khi tạo thành công các bạn cứ chọn Next cho đến màn hình Name & Location

  • Project Name: Tên của dự án
  • Project location: Nơi lưu trữ dự án

Đây là 2 thông tin các bạn cần nhập để đặt tên cũng như vị trí lưu trữ dự án của chúng ta.

Nhớ bỏ chọn Create Main Class vì chúng ta sẽ sử dụng JFrame để chạy chương trình.

Bước 2: Tạo JFrame

Sau khi khởi tạo project thành công, chúng ta chọn New ->JFrame và tiến hành đặt tên cho nó.

Dưới đây là giao diện khi tạo một JFrame

Chúng ta chỉ việc nắm và kéo thả các thành phần giao diện trong Swing vào JFrame.

Khi chọn vào mỗi thành phần trên giao diện lập tức các thuộc tính của nó như màu sắc, font chữ, tên etc sẽ được hiển thị ở phần Properties. Ngoài ra nó còn có tab Events chứa các sự kiện và dẫn đến code xử lý của chúng ta.

Mẫu đăng ký trên mình kéo thả các thành phần:

  • JLabel: dùng để hiển thị các tên User name, Password.
  • JTextField: cho phép người dùng nhập các thông tin tương ứng.
  • JButton: cho phép người dùng submit dữ liệu đã nhập.

Sử dụng Properties để chỉnh JButton1 thành Login.

Bước 3: Xử lý sự kiện

Mặc định thì tên các biến đại diện cho các thành phần trong JFrame rất khó hiểu như JTextField1, JButton1 etc. Chúng ta có thể thay đổi chúng trong Tab Properties ở mục Code.

Ở đây mình đổi tên của các TextField và Button để dễ sử dụng hơn: userNameText, passwordText và btnLogin

Sau khi đổi tên thành công, chúng ta sẽ bắt đầu xử lý sự kiện khi người dùng nhấn nút login thì tiến hành kiểm tra. Nếu username và password là admin thì xuất ra màn hình “success” và “failed”.

private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) { if (userNameText.getText().equals(“admin”) && passwordText.getText().equals(“admin”)) { System.out.println(“Success”); } else { System.out.println(“Failed”); } }

Sau khi click vào nút login thì màn hình console sẽ xuất ra chữ Success.

Dưới đây là mã nguồn đầy đủ của chương trình

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package helloworld; /** * * @author kyle */ public class LoginFrame extends javax.swing.JFrame { /** * Creates new form LoginFrame */ public LoginFrame() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings(“unchecked”) //

private void initComponents() { jLabel1 = new javax.swing.JLabel(); userNameText = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); passwordText = new javax.swing.JTextField(); btnLogin = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText(“User name”); jLabel2.setText(“Password”); btnLogin.setText(“Login”); btnLogin.setActionCommand(“Login”); btnLogin.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnLoginActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(50, 50, 50) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addGap(18, 18, 18) .addComponent(userNameText, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addGap(25, 25, 25) .addComponent(passwordText, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(26, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnLogin) .addGap(141, 141, 141)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(35, 35, 35) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(userNameText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(35, 35, 35) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(passwordText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(28, 28, 28) .addComponent(btnLogin) .addContainerGap(121, Short.MAX_VALUE)) ); pack(); }//

private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) { if (userNameText.getText().equals(“admin”) && passwordText.getText().equals(“admin”)) { System.out.println(“Success”); } else { System.out.println(“Failed”); } } /** * @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(LoginFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(LoginFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(LoginFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(LoginFrame.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 LoginFrame().setVisible(true); } }); } // Variables declaration – do not modify private javax.swing.JButton btnLogin; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JTextField passwordText; private javax.swing.JTextField userNameText; // End of variables declaration }

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don’t take advantage of improvements introduced in later releases and might use technology no longer available.See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.

A Frame is a top-level window with a title and a border. The size of the frame includes any area designated for the border. The dimensions of the border area may be obtained using the

getInsets

method. Since the border area is included in the overall size of the frame, the border effectively obscures a portion of the frame, constraining the area available for rendering and/or displaying subcomponents to the rectangle which has an upper-left corner location of

(insets.left

,

insets.top)

, and has a size of

width - (insets.left + insets.right)

by

height - (insets.top + insets.bottom)

.

A frame, implemented as an instance of the

JFrame

class, is a window that has decorations such as a border, a title, and supports button components that close or iconify the window. Applications with a GUI usually include at least one frame. Applets sometimes use frames, as well.

To make a window that is dependent on another window disappearing when the other window is iconified, for example use a

dialog

instead of

frame.

. To make a window that appears within another window, use an internal frame.

Here is a picture of the extremely plain window created by the

FrameDemo

demonstration application. You can find the source code in

FrameDemo.java

. You can run FrameDemo (
download JDK 7 or later).

The following

FrameDemo

code shows how to create and set up a frame.

//1. Create the frame. JFrame frame = new JFrame(“FrameDemo”); //2. Optional: What happens when the frame closes? frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //3. Create components and put them in the frame. //…create emptyLabel… frame.getContentPane().add(emptyLabel, BorderLayout.CENTER); //4. Size the frame. frame.pack(); //5. Show it. frame.setVisible(true);

Here are some details about the code:


JFrameconstructor is the no-argument constructor.


EXIT_ON_CLOSEoperation exits the program when your user closes the frame. This behavior is appropriate for this program because the program has only one frame, and closing the frame makes the program useless.

See Responding to Window-Closing Events for more information.

For frames that have menus, you’d typically add the menu bar to the frame here using the

setJMenuBar

method. See How to Use Menus for details.


packmethod sizes the frame so that all its contents are at or above their preferred sizes. An alternative to


packis to establish a frame size explicitly by calling


setSizeor


setBounds(which also sets the frame location). In general, using


packis preferable to calling


setSize, since


packleaves the frame layout manager in charge of the frame size, and layout managers are good at adjusting to platform dependencies and other factors that affect component size.

This example does not set the frame location, but it is easy to do so using either the

setLocationRelativeTo

or

setLocation

method. For example, the following code centers a frame onscreen:

frame.setLocationRelativeTo(null);


setVisible(true)makes the frame appear onscreen. Sometimes you might see the


showmethod used instead. The two usages are equivalent, but we use


setVisible(true)for consistency's sake.

By default, window decorations are supplied by the native window system. However, you can request that the look-and-feel provide the decorations for a frame. You can also specify that the frame have no window decorations at all, a feature that can be used on its own, or to provide your own decorations, or with full-screen exclusive mode.

Besides specifying who provides the window decorations, you can also specify which icon is used to represent the window. Exactly how this icon is used depends on the window system or look and feel that provides the window decorations. If the window system supports minimization, then the icon is used to represent the minimized window. Most window systems or look and feels also display the icon in the window decorations. A typical icon size is 16×16 pixels, but some window systems use other sizes.

The following snapshots show three frames that are identical except for their window decorations. As you can tell by the appearance of the button in each frame, all three use the Java look and feel. The first uses decorations provided by the window system, which happen to be Microsoft Windows, but could as easily be any other system running the Java platform.The second and third use window decorations provided by the Java look and feel. The third frame uses Java look and feel window decorations, but has a custom icon.

Window decorations provided by the look and feel Window decorations provided by the window system Custom icon; window decorations provided by the look and feel

Here is an example of creating a frame with a custom icon and with window decorations provided by the look and feel:

//Ask for window decorations provided by the look and feel. JFrame.setDefaultLookAndFeelDecorated(true); //Create the frame. JFrame frame = new JFrame(“A window”); //Set the frame icon to an image loaded from a file. frame.setIconImage(new ImageIcon(imgURL).getImage());

As the preceding code snippet implies, you must invoke the

setDefaultLookAndFeelDecorated

method before creating the frame whose decorations you wish to affect. The value you set with

setDefaultLookAndFeelDecorated

is used for all subsequently created

JFrame

s. You can switch back to using window system decorations by invoking

JFrame.setDefaultLookAndFeelDecorated(false)

. Some look and feels might not support window decorations; in this case, the window system decorations are used.

The full source code for the application that creates the frames pictured above is in

FrameDemo2.java

. Besides showing how to choose window decorations, FrameDemo2 also shows how to disable all window decorations and gives an example of positioning windows. It includes two methods that create the

Image

objects used as icons one is loaded from a file, and the other is painted from scratch.

By default, when the user closes a frame onscreen, the frame is hidden. Although invisible, the frame still exists and the program can make it visible again. If you want different behavior, then you need to either register a window listener that handles window-closing events, or you need to specify default close behavior using the

setDefaultCloseOperation

method. You can even do both.

The argument to

setDefaultCloseOperation

must be one of the following values, the first three of which are defined in the

WindowConstants

interface (implemented by

JFrame

,

JInternalPane

, and

JDialog

):


DO_NOTHING_ON_CLOSE


windowClosingmethod.


HIDE_ON_CLOSE(the default for


JDialogand


JFrame)


DISPOSE_ON_CLOSE(the default for


JInternalFrame)


EXIT_ON_CLOSE(defined in the


JFrameclass)


System.exit(0). This is recommended for applications only. If used within an applet, a


SecurityExceptionmay be thrown.


DISPOSE_ON_CLOSE

can have results similar to

EXIT_ON_CLOSE

if only one window is onscreen. More precisely, when the last displayable window within the Java virtual machine (VM) is disposed of, the VM may terminate. See
AWT Threading Issues for details.

The default close operation is executed after any window listeners handle the window-closing event. So, for example, assume that you specify that the default close operation is to dispose of a frame. You also implement a window listener that tests whether the frame is the last one visible and, if so, saves some data and exits the application. Under these conditions, when the user closes a frame, the window listener will be called first. If it does not exit the application, then the default close operation disposing of the frame will then be performed.

For more information about handling window-closing events, see How to Write Window Listeners. Besides handling window-closing events, window listeners can also react to other window state changes, such as iconification and activation.

The following tables list the commonly used

JFrame

constructors and methods. Other methods you might want to call are defined by the

java.awt.Frame

,

java.awt.Window

, and

java.awt.Component

classes, from which

JFrame

descends.

Because each

JFrame

object has a root pane, frames have support for interposing input and painting behavior in front of the frame children, placing children on different “layers”, and for Swing menu bars. These topics are introduced in Using Top-Level Containers and explained in detail in How to Use Root Panes.

The API for using frames falls into these categories:

Method or Constructor Purpose
JFrame()

JFrame(String)

Create a frame that is initially invisible. The
void setDefaultCloseOperation(int)

int getDefaultCloseOperation()

Set or get the operation that occurs when the user pushes the close button on this frame. Possible choices are:
void setIconImage(Image)

Image getIconImage()

(in

Set or get the icon that represents the frame. Note that the argument is a
java.awt.Image object, not a
void setTitle(String)

String getTitle()

(in

Set or get the frame title.
void setUndecorated(boolean)

boolean isUndecorated()

(in

Set or get whether this frame should be decorated. Works only if the frame is not yet displayable (has not been packed or shown). Typically used with full-screen exclusive mode or to enable custom window decorations.
static void setDefaultLookAndFeelDecorated(boolean)

static boolean isDefaultLookAndFeelDecorated()

Determine whether subsequently created
Method Purpose
void pack()

(in

Size the window so that all its contents are at or above their preferred sizes.
void setSize(int, int)

void setSize(Dimension)

Dimension getSize()

(in

Set or get the total size of the window. The integer arguments to
void setBounds(int, int, int, int)

void setBounds(Rectangle)

Rectangle getBounds()

(in

Set or get the size and position of the window. For the integer version of
void setLocation(int, int)

Point getLocation()

(in

Set or get the location of the upper left corner of the window. The parameters are the x and y values, respectively.
void setLocationRelativeTo(Component)

(in

Position the window so that it is centered over the specified component. If the argument is
Method Purpose
void setContentPane(Container)

Container getContentPane()

Set or get the frame content pane. The content pane contains the visible GUI components within the frame.
JRootPane createRootPane()

void setRootPane(JRootPane)

JRootPane getRootPane()

Create, set, or get the frame root pane. The root pane manages the interior of the frame including the content pane, the glass pane, and so on.
void setJMenuBar(JMenuBar)

JMenuBar getJMenuBar()

Set or get the frame menu bar to manage a set of menus for the frame.
void setGlassPane(Component)

Component getGlassPane()

Set or get the frame glass pane. You can use the glass pane to intercept mouse events or paint on top of your program GUI.
void setLayeredPane(JLayeredPane)

JLayeredPane getLayeredPane()

Set or get the frame layered pane. You can use the frame layered pane to put components on top of or behind other components.

All of the standalone applications in this trail use

JFrame

. The following table lists a few and tells you where each is discussed.

Example Where Described Notes
The Example Explained Displays a basic frame with one component.
Specifying Window Decorations Lets you create frames with various window decorations.
A study in creating and destroying windows, in implementing a menu bar, and in exiting an application.
How to Use Layered Panes Illustrates how to use a layered pane (but not the frame layered pane).
The Glass Pane Illustrates the use of a frame glass pane.
How to Use Menus Shows how to put a

Nội dung

Ngôn ngữ lập trình Java là một ngôn ngữ lập trình có nhu cầu sử dụng ngày càng cao, do đó việc nắm vững tất cả các khái niệm trong lập trình Java trở nên vô cùng quan trọng.

Swing là một trong số những khái niệm quan trọng trong Java.

Nó là một bộ công cụ có trọng lượng nhẹ, hỗ trợ các nhà lập trình tạo giao diện đồ hoạ người dùng.

Trong bài này chúng ta sẽ đi qua cái khái niệm về Java Swing và cách ứng dụng chúng nhé!

How to Install WindowBuilder in Eclipse IDE
How to Install WindowBuilder in Eclipse IDE

Java Swing là gì?

Java Swing là cách gọi rút gọn khi người ta nhắc đến Swing của Java Foundation (JFC). Nó là bộ công cụ GUI mà Sun Microsystems phát triển để xây dựng các ứng dụng tối ưu dùng cho window (bao gồm các thành phần như nút, thanh cuộn,…).

Swing được xây dựng trên AWT API và hoàn toàn được viết bằng Java. Tuy nhiên, nó lại khác với AWT ở chỗ bộ công cụ này thuộc loại nền tảng độc lập, bao gồm các thành phần nhẹ và phức tạp hơn AWT.

Các gói javax.swing bao gồm các lớp cho Java Swing API như JMenu, JButton, JTextField, JRadioButton, JColorChooser,…

Việc xây dựng ứng dụng sẽ trở nên dễ dàng hơn với Java Swing vì chúng ta có các bộ công cụ GUI giúp đỡ công việc.

Swing được chính thức phát hành vào tháng 3/1998. Nó đi kèm với thư viện Swing 1.0 với hơn 250 lớp, 80 giao tiếp.

Hiện nay con số này đã được tăng lên, ở phiên bản Swing 1.4 có 451 lớp và 85 giao tiếp.

Các bản phát hành Java 2 (SDK 1.2 và các phiên bản mới hơn) đều bao gồm Swing trong runtime environment.

Hướng dẫn học lập trình Java Swing từ A đến Z

Dưới đây là một số ví dụ đơn giản để tạo GUI bằng Swing trong Java:

JButton Class – Lớp JButton

Nó được dùng để tạo ra một nút (button) có tên.

Việc sử dụng ActionListener sẽ dẫn đến một số hành động khi nút được nhấn.

Nó kế thừa lớp AbstractButton và độc lập với nền tảng.

Ví dụ:

1

10

11

12

import javax.swing.*;

public class example{

public static void main(String args[]) {

JFrame a = new JFrame(“example”);

JButton b = new JButton(“click me”);

b.setBounds(40,90,85,20);

a.add(b);

a.setSize(300,300);

a.setLayout(null);

a.setVisible(true);

Output:

Một nút button có tên

JTextField Class – Lớp JTextField

Nó kế thừa lớp JTextComponent và dùng để cho phép chỉnh sửa dòng đơn

Ví dụ:

1

10

11

12

import javax.swing.*;

public class example{

public static void main(String args[]) {

JFrame a = new JFrame(“example”);

JTextField b = new JTextField(“edureka”);

b.setBounds(50,100,200,30);

a.add(b);

a.setSize(300,300);

a.setLayout(null);

a.setVisible(true);

Output:

JTextField Class

JScrollBar Class – lớp JScrollBar

Dùng để thêm thanh cuộn (cả ngang và dọc)

Ví dụ:

1

10

11

12

13

14

15

import javax.swing.*;

class example{

example(){

JFrame a = new JFrame(“example”);

JScrollBar b = new JScrollBar();

b.setBounds(90,90,40,90);

a.add(b);

a.setSize(300,300);

a.setLayout(null);

a.setVisible(true);

public static void main(String args[]){

new example();

Output:

JScrollBar Class

JPanel Class – Lớp JPanel

Kế thừa lớp JComponent, cung cấp không gian cho một ứng dụng (có thể đính kèm bất kỳ thành phần nào khác).

1

10

11

12

13

14

15

16

17

18

19

20

import java.awt.*;

import javax.swing.*;

public class Example{

Example(){

JFrame a = new JFrame(“example”);

JPanel p = new JPanel();

p.setBounds(40,70,200,200);

JButton b = new JButton(“click me”);

b.setBounds(60,50,80,40);

p.add(b);

a.add(p);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

public static void main(String args[])

new Example();

Output:

Panel Class

JMenu Class – Lớp JMenu

Kế thừa lớp JMenuItem, là một thành phần menu kéo xuống (hiển thị từ thanh menu).

1

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

import javax.swing.*;

class Example{

JMenu menu;

JMenuItem a1,a2;

Example()

JFrame a = new JFrame(“Example”);

menu = new JMenu(“options”);

JMenuBar m1 = new JMenuBar();

a1 = new JMenuItem(“example”);

a2 = new JMenuItem(“example1”);

menu.add(a1);

menu.add(a2);

m1.add(menu);

a.setJMenuBar(m1);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

public static void main(String args[])

new Example();

Output:

Lớp JMenu

JList Class – Lớp JList

Kế thừa lớp JComponent, đối tượng của lớp Jlist đại diện cho danh sách các mục văn bản.

Next

1

10

11

12

13

14

15

16

17

18

19

20

import javax.swing.*;

public class Example

Example(){

JFrame a = new JFrame(“example”);

DefaultListModel

l = new DefaultListModel< >();

l.addElement(“first item”);

l.addElement(“second item”);

JList

b = new JList< >(l);

b.setBounds(100,100,75,75);

a.add(b);

a.setSize(400,400);

a.setVisible(true);

a.setLayout(null);

public static void main(String args[])

new Example();

Output:

Lớp JList

JLabel Class – Lớp JLabel

Được dùng để đặt văn bản trong vùng chứa, lớp JLabel cũng kế thừa lớp JComponent.

1

10

11

12

13

14

import javax.swing.*;

public class Example{

public static void main(String args[])

JFrame a = new JFrame(“example”);

JLabel b1;

b1 = new JLabel(“edureka”);

b1.setBounds(40,40,90,20);

a.add(b1);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

Output:

Lớp JLabel

JComboBox Class- Lớp JComboBox

Kế thừa lớp JComponent, dùng để hiển thị menu lựa chọn bật lên.

1

10

11

12

13

14

15

16

17

18

import javax.swing.*;

public class Example{

JFrame a;

Example(){

a = new JFrame(“example”);

string courses[] = { “core java”,”advance java”, “java servlet”};

JComboBox c = new JComboBox(courses);

c.setBounds(40,40,90,20);

a.add(c);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

public static void main(String args[])

new Example();

Output:

Lớp JComboBox

Layout Manager – Trình quản lý bố cục

Để sắp xếp các thành phần bên trong vùng chứa, chúng ta sử dụng Layout Manager.

Có một số bố cục như sau:

  1. Border layout – Bố cục đường viền
  2. Flow layout – Bố cục luồng
  3. GridBag layout – Bố cục dạng khung
Border Layout

Trình quản lý bố cục mặc định tất cả JFrame là Border Layout.

Nó đặt các thành phần ở tối đa 5 vị trí: trên, dưới, trái, phải và trung tâm.

Trình quản lý bố cục mặc định

Flow Layout

Bố cục này đặt các thành phần lần lượt vào một hàng.

Bố cục mặc định JPanel.

Đây là bố cục mặc định cho mọi JPanel.

GridBag Layout

GridBag Layout đặt các thành phần trong một lưới, nó cho phép các thành phần này trải dài hơn 1 ô.

GridBag Layout

Ví dụ: Dưới đây là một khung chat ở dạng Flow Layout

1

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

import javax.swing.*;

import java.awt.*;

class Example {

public static void main(String args[]) {

JFrame frame = new JFrame(“Chat Frame”);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(400, 400);

JMenuBar ob = new JMenuBar();

JMenu ob1 = new JMenu(“FILE”);

JMenu ob2 = new JMenu(“Help”);

ob.add(ob1);

ob.add(ob2);

JMenuItem m11 = new JMenuItem(“Open”);

JMenuItem m22 = new JMenuItem(“Save as”);

ob1.add(m11);

ob1.add(m22);

JPanel panel = new JPanel(); // the panel is not visible in output

JLabel label = new JLabel(“Enter Text”);

JTextField tf = new JTextField(10); // accepts upto 10 characters

JButton send = new JButton(“Send”);

JButton reset = new JButton(“Reset”);

panel.add(label); // Components Added using Flow Layout

panel.add(label); // Components Added using Flow Layout

panel.add(tf);

panel.add(send);

panel.add(reset);

JTextArea ta = new JTextArea();

frame.getContentPane().add(BorderLayout.SOUTH, panel);

frame.getContentPane().add(BorderLayout.NORTH, tf);

frame.getContentPane().add(BorderLayout.CENTER, ta);

frame.setVisible(true);

Output:

Khung chat ở dạng Flow Layout

Java UI Design - Dashboard ( Part 1 )
Java UI Design – Dashboard ( Part 1 )

Swing trong Java là gì?

Swing trong Java là một bộ công cụ Giao diện đồ họa người dùng (Graphical User Interface hay GUI) bao gồm các GUI component. Swing cung cấp một bộ widget và package phong phú để tạo các GUI component phức tạp cho các ứng dụng Java. Swing là một phần của Java Foundation Classes (JFC), một API cho các chương trình Java cung cấp GUI.

Thư viện Java Swing được xây dựng trên đầu Java Abstract Widget Toolkit (AWT), một bộ công cụ GUI cũ hơn và phụ thuộc và nền tảng (platform dependent). Bạn có thể sử dụng các component lập trình Java GUI như nút (button), hộp văn bản (textbox), v.v. từ thư viện và không phải tạo các component từ đầu.

Java Swing class Hierarchy Diagram

Tất cả các component trong Java Swing là JComponent có thể được thêm vào container class (lớp vùng chứa).

Is there a way to change the Windows 10 system look and feel instance in order to change the title bar color?

Here is an example of the result I’m looking for:

Dark title bar

Currently I’m running this line of code to get the system look and feel:

try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }

Is there a way to change the Windows 10 system look and feel instance in order to change the title bar color?

Here is an example of the result I’m looking for:

Dark title bar

Currently I’m running this line of code to get the system look and feel:

try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }

Cài đặt Netbeans

Để cài đặt Netbeans các bạn cần thực hiện các bước sau theo thứ tự

Cài đặt JDK

Ta cần cài đặt Java SE Development Kit(JDK) trước mới cài đặt được Netbeans IDE. Đầu tiên các bạn vào link download JDK ở phía trên để download JDK về máy. Lưu ý chọn đúng phiên bản phù hợp với hệ điều hành các bạn đang sử dụng, và phải có tài khoản Oracle để đăng nhập mới có thể tải nhé.

Lưu ý sau khi cài đặt JDK thành công chúng ta cần cấu hình biến môi trường cho Java. Để cài đặt biến môi trường cho Java cho mỗi hệ điều hành là hoàn toàn khác nhau, ở đây mình xin liệt kê cách cấu hình cho Windows 10.

Vào thanh tìm kiếm của windows tìm kiếm với từ khoá

View advanced system settings

và click vào.

Chọn tab Advanced -> và click vào Environment Variables.

Ở mục System variables, chọn New… và thêm JAVA_HOME và trỏ

đường dẫn đến thư mục cài đặt Java.

Bước cuối cùng cập nhật PATH, cũng trong System variables, tìm đến PATH và chọn EDIT thêm vào

%JAVA_HOME%\bin;

vào cuối.

Hoặc trong windows mới sẽ có nút new cho phép chúng ta thêm dòng mới.

Kiểm tra cài đặt có thành công hay không với lệnh CMD sau:

java -version java version “1.8.0_60” Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

Cài đặt Netbeans

Sau khi cài đặt JDK thành công chúng ta chỉ cần vào trang chủ của Netbeans để tải bản cài đặt tương thích với hệ điều hành đang sử dụng.

Đây là trang chủ các bạn có thể vào để download cách nhanh chóng: https://netbeans.apache.org/download/nb120/nb120.html

Đây là giao diện của netbeans khi mình cài đặt netbean thành công trên MacOS

Senior Programmers vs Junior Developers #shorts
Senior Programmers vs Junior Developers #shorts

Kết luận:

Trong bài viết trên, chúng ta đã thảo luận về Java Swing là gì, hệ thống phân cấp các lớp Swing Java.

Với tất cả các thành phần đi kèm với Swing trong Java, việc xây dựng các ứng dụng GUI được tối ưu hóa trở nên dễ dàng hơn.

Hy vọng thông qua bài viết này các bạn đã hiểu về Swing và biết cách ứng dụng nó khi sử dụng ngôn ngữ lập trình Java.

Và nếu bạn muốn tìm hiểu rõ hơn ngôn ngữ này, có thể tham gia ngay khóa học lập trình Java của Ironhack Việt Nam

Chúc các bạn thành công.

Chào các bạn, Java Swing chắc có lẽ đã không còn xa lạ gì với anh em lập trình viên Java nữa rồi phải không ạ. Mặc dù giờ đây không còn nhiều ứng dụng sử dụng công nghệ này nữa, nhưng trong giảng dạy thì đây vẫn là một trong những nội dung được giảng dạy rất nhiều tại các trường đại học.

Nguyên nhân là vì công nghệ này rất dễ tiếp cận, cho phép người học Java có thể tạo ra được các ứng dụng Desktop một cách nhanh chóng và đơn giản hơn.

Thông thường thì chúng ta sẽ sử dụng các phần mềm như Netbean hoặc IntelliJ Idea, đây đều là những công cụ hỗ trợ rất tốt cho việc này. Nhưng nhiều bạn lập trình Java đã quen với việc sử dụng Eclipse, nhưng rất tiếc là mặc định Eclipse lại không trực tiếp hỗ trợ Java Swing.

Vậy làm thế nào để các bạn sử dụng Eclipse vẫn có thể code được Java Swing (kéo thả)? Vâng, thì trong bài viết này mình sẽ hướng dẫn cho các bạn cách cài đặt plugin WindowBuilder trên Eclipse để lập trình Java Swing trên Eclipse một cách dễ dàng hơn nhé.

Hướng dẫn cài đặt WindowBuilder trên Eclipse

Lưu ý: Nếu bạn nào chưa cài đặt Eclipse trên máy tính Windows thì bạn hãy thực hiện bước này trước đã nhé.

+ Bước 1: Sau khi cài Eclipse xong, bây giờ để cài một plugin bất kỳ trên Eclipse thì các bạn có thể vào:

Help

=>

Eclipse Marketplace…

như hình bên dưới.

+ Bước 2: Một hộp thoại như hình bên dưới xuất hiện, các bạn tìm kiếm cho mình từ khóa

window builder

=> và chọn kết quả như trong hình sau đó bấm

Install

(ở đây do mình đã cài đặt trước rồi nên ảnh bên dưới là Uninstall nhé).

+ Bước 3: Tiếp theo sẽ là bước xác nhận các thành phần cũng như chức năng sẽ được cài đặt kèm theo. Ở đây mình chọn tất cả (vì cũng không quá nặng và cũng để tránh các lỗi phát sinh khi cài đặt)

=> Sau đó các bạn bấm

Confirm

để xác nhận các thành phần đã chọn.

Xác nhận xong thì các bạn bấm

Finish

để bắt đầu cài đặt các thành phần này.

+ Bước 4: Sau khi cài plugin đặt xong thì Eclipse sẽ yêu cầu Restart lại ứng dụng để kích hoạt plugin chúng ta vừa cài đặt thì các bạn bấm chọn

Yes

nhé.

+ Bước 5: Okay, vậy là xong bước cài đặt plugin rồi. Bây giờ chúng ta sẽ tạo một project Java Swing đơn giản với Eclipse nhé. Đầu tiên các bạn tạo mới project:

File

=>

New

=>

Java Project

Tạo một dự án Java trong Eclipse khá đơn giản, các bạn chỉ cần đặt tên project, các lựa chọn về JRE các bạn cứ để mặc định như hình bên dưới rồi bấm

Finish

là được.

Sau khi tạo xong một dự án (project) các bạn chọn:

src

=>

New

=>

Other..

(hoặc phím tắt là

Ctrl + N

) để tạo mới một JFrame.

Kéo xuống dưới các bạn sẽ thấy thư mục

WindowBuilder

. Tại đây các bạn chọn

Jframe

=> sau đó bấm

Next

nhé.

Việc tạo một

JFrame

cũng rất đơn giản, các bạn chỉ cần đặt tên sau đó bấm

Finish

là xong.

Vâng, sau khi tạo được một JFrame thì bên dưới chính là source code của chúng ta. Thực tế thì khi lập trình Java Swing các bạn sẽ ít khi phải viết code mà chủ yếu là kéo thả giao diện (trừ khi ứng dụng của bạn có các nút chức năng phải dùng đến code).

Bây giờ, các bạn chuyển tab

Design

bằng cách bấm vào tab

Design

như hình bên dưới.

Quá trình này có thể sẽ mất một lúc để Eclipse load được giao diện (cho lần mở đầu tiên sau khi tạo Project)

Và bên dưới chính là giao diện mở đầu khi các bạn sử dụng Eclipse để lập trình JavaSwing. (Các bạn dùng Netbean chắc có lẽ đã quá quen với không gian giao diện như thế này rồi đúng không :D)

Tất nhiên, giao diện trên Eclipse sẽ hơi khác một chút so với các công cụ khác và cũng tùy thuộc các bạn đang sử dụng công cụ nào mà sẽ cảm thấy có những ưu nhược điểm riêng.

Bây giờ mình sẽ thử tạo một giao diện đó là hiển thị chữ BLOG CHIA SẺ KIẾN THỨC lên xem sao nhé.

Mình sẽ “kéo” vào giao diện một

JLabel

(các thành phần khác các bạn cũng kéo thả tương tự) => sau đó mình chỉnh lại cỡ chữ, font chữ và căn giữa cho chữ.

Cuối cùng, để xem trước kết quả các bạn chuột phải vào frame => và chọn

Test/Preview…

là được.

Okay, đây chính là kết quả của chúng ta, tất nhiên, đây chỉ là một ví dụ nên mình đã làm khá đơn giản. Các bạn hoàn toàn có thể kéo thả và tạo ra các ứng dụng chất lượng cũng như phức tạp hơn.

Lời kết

Như vậy là chỉ với vài bước rất đơn giản thôi là các bạn lập trình viên đang có thói quen làm việc với Eclipse đã có thể lập trình được JavaSwing ngay trên Eclipse thay vì phải chuyển sang các công cụ khác như Netbean hay IntelliJ Idea.

Hi vọng là bài viết này sẽ hữu ích với bạn. Hẹn gặp lại các bạn trong các bài viết tiếp theo nhé !

CTV: Nguyễn Đức Cảnh – Blogchiasekienthuc.com

Chuyển đổi giao diện thành “Windows look and feel” trong Java 6

Kết quả cho như hình

13 Responses to “Chuyển đổi giao diện thành “Windows look and feel” trong Java 6”

  1. December 10, 2009 at 2:48 am

    Anh Hải ơi cho em hỏi xíu: Em muốn làm một chương trình giống như Total Commander nhưng em không chưa biết sử dụng controls nào để tổ chức giao diện cho 2 cửa sổ 2 bên. Xài JPanel hay Tabbed Pane được không anh?. Rất mong nhận được ý kiến giúp đỡ và những chỉ dẫn thêm của anh!.

  2. December 11, 2009 at 1:51 pm

    Cảm ơn anh Hải rất nhiều về sự giúp đỡ!. Chúc anh luôn khỏe để làm việc tốt.

  3. January 12, 2010 at 9:54 am

    Thầy ơi, cho em hỏi là em muốn làm một chương trình quản lý sinh viên đơn giản chỉ là thêm sửa xóa. Như hình vẽ.

    Em muốn khi nhập dữ liệu vào ở các ô TextFields sau đó bấm nút Thêm thì chương trình sẽ tự động ghi vào database và hiển thị ở cái Jtable bên dưới. Khi click vào một trường bất kì trên JTable bấm vào nút Xóa nó sẽ xóa trường đấy và khi click vào nut Sửa thì các thông tin về trường đấy sẽ hiện lên bên trên các TextFields để cho mình sửa.Đây là code của em, bắt sự kiện các nút em chưa làm, thầy có thể hướng dẫn em đoạn này được không ạ.http://paste.ubuntu.com/355416/

  4. April 2, 2010 at 7:11 am

    thầy ơi cho em hỏi thế còn muốn chuyển đổi thành giao diện mac os thi làm như thế nào ? xin thầy hãy chỉ rõ và chi tiết rất cám ơn thầy

  5. May 6, 2010 at 9:37 am

    Thầy cho em hỏi, muốn kích hoạt giao diện Nimbus thì làm thế nào ạ?

    Giao diện mặc định Metal không được đẹp, 🙂

  6. July 6, 2010 at 2:13 am

    Em chao Thay! Em biet post bai day thi sai vi tri nhung em dang can tim hieu gap cach thiet ke report trong Java nhung em chua biet lam the nao de tao ra Report va dung lenh nhu the nao de xuat report ra may in ca! Thay co the huong dan cho em mot it duoc ko Thay? Cam on Thay rat nhieu!

  7. April 19, 2011 at 9:44 am

    thầy ơi e mới học java , e muốn sữ dụng công cụ sưing để demo giao diện của window explorer thầy giúp e được không ??

  8. June 22, 2011 at 1:29 pm

    Bạn The Anh pm mình giúp cho :p

  9. January 30, 2012 at 8:00 am

    Thầy ơi cho em hỏi làm sao để tạo cây thư mục vậy thầy

  10. November 10, 2014 at 6:12 pm

    em chào thầy.e có 1 vấn đề này muốn nhờ thầy giải đáp.e làm 1 ứng dụng java project.có add UIManager lookandfeel cho từng user để đảm bảo giao diện của project ko bị lỗi với tên trường trong db là skin.khi e insert 1 user vào.trường skin sẽ phải lưu lại cái classname() của lookandfeel.bjo khi e muốn xem thông tin user.load skin lên combobox nhưng combobox hiển thị chỉ là lookandfeel.getname().làm tn để e setselected item cho nó ứng với db đc ak.

Java Swing

Khóa học Java Swing giúp bạn thiết kế giao diện ứng dụng trên nền tảng desktop sử dụng thư viện Java Swing trong Java và CSDL

  • đã học
  • Java
  • Nâng cao
  • Khóa học Java Swing giúp bạn thiết kế giao diện ứng dụng trên nền tảng desktop sử dụng thư viện Java Swing trong Java và CSDL.

    Những ứng dụng chạy được trên nền tảng window, macos, linux,… có giao diện người dùng thân thiện.

    Java Swing được sử dụng nhiều trong các bài tập lớn trên trường Đại Học.

    Trong khóa này các em sẽ học cách xây dựng giao diện với các

    + Component cơ bản.

    + Component nâng cao

    + Layout

    + Swing kết hợp JDBC

    Giảng Viên
    JMaster

    10+ years experiences

    JMaster dạy bạn kiến thức để có kinh nghiệm làm việc

    Luôn quan tâm, lắng nghe, thấu hiểu học viên, Trung Tâm JMaster được nhiều bạn trẻ yêu thích. Người giảng dạy nhiệt tình, phương pháp dạy học đặc biệt, luôn đổi mới công nghệ, các bạn sẽ cảm thấy thích thú trong từng buổi học và thực hành.

    Giảng viên có gì đặc biệt

    • Hầu hết các giảng viên đi làm nhiều kinh nghiệm trong nghề (5+).
    • Có những giảng viên đang nắm những vị trí quan trọng tại các công ty trong và ngoài nước.
    • Luôn tận tâm, nhiệt khuyết, hết mình với công việc.
    • Giảng dạy, giải thích cho học viên đến khi học viên hiểu và tiếp thu được.

    Giảng viên nổi bật

    1. Gv Đinh Đức Cường
    • Với hơn 10+ năm làm việc trong nước và ngoài nước anh đã đúc kết cho mình rất nhiều kinh nghiệm. Anh là người sáng lập và tìm ra phương pháp dạy học đặc biệt hiệu quả cho trung tâm.
    • Từng theo ngành CNTT của Học viện Công nghệ Bưu chính Viễn thông HN với lớp học CLC
    • Ra trường đầu quân cho FPT Software. Làm dự án Java Web Full Stack dựa trên Spring MVC Framework lĩnh vực Healthcare, khách hàng là VreeHealth (Merck USA). Nhờ tiếng anh tốt và trách nhiệm, nên đảm nhận công việc leader nhóm.
    • Tiếp nối là leader cho dự án Chat của khách hàng Châu Âu, sử dụng Javascript, Node.js
    • Sau khi pass phỏng vấn qua Singapore làm việc, đầu quân cho EVVOLAB và tiếp đó là SISTIC (sistic.com.sg) chuyên về dự án thương mại điện tử bán vé online top 1 Singapore. Sử dụng Spring Framework.
    • Anh được tham gia Tech Lead team chuyên về giải pháp hệ thống. Xây lại hệ thống mới cho SISTIC, để đảm bảo khả năng mở rộng, và tối ưu, với công nghệ Java Spring MVC, Caching, Mongo, RabbitMQ, Mobile, Javascript
    • Về Việt Nam, thành lập Trung Tâm đào tạo JMaster và cty Phần Mềm với tâm huyết đào tạo giới trẻ Việt Nam lập trình để vươn xa ra thế giới.

    Luôn sẵn sàng giúp các bạn hoàn thiện hơn về lĩnh vực lập trình phần mềm.

    JMaster Trung tâm Java – rất vui và cảm ơn các bạn đã luôn ủng hộ chúng tôi!

    Trung Tâm Java JMaster truyền dạy kinh nghiệm học lập trình Java, Javascript Web & Mobile App FullStack trong áp dụng công việc thực tế.

    Toà nhà Fodacon, # 14 Trần Phú, Hà Đông, Hà Nội

    Hotline: 0986 983 766

    Email: [email protected]

  • Nội dung bao gồm 46 bài học soạn sẵn và được cập nhật thêm mới.

    • Component cơ bản

      • Java Swing 01 – Giới thiệu Khóa học Java Swing 1m
      • Java Swing 02 – Giới thiệu về bộ thư viện Java Swing 8m
      • Java Swing 03 – JFrame 6m
      • Java Swing 04 – JButton 7m
      • Java Swing 05 – JLabel 6m
      • Java Swing 06 – JTextField 6m
      • Java Swing 07 – JTextArea 5m
      • Java Swing 08 – JPasswordField 5m
      • Java Swing 09 – JCheckBox 8m
      • Java Swing 10 – JRadioButton 6m
      • Java Swing 11 – JComboBox 11m
      • Java Swing 12 – JTable 10m
      • Java Swing 13 – JList 10m
      • Java Swing 14 – JOptionPane 9m
      • Java Swing 15 – Thực hành Java Swing + JDBC (Phần 1) 20m
      • Java Swing 16 – Thực hành Java Swing + JDBC (Phần 2) 16m
      • Java Swing 17 – Thực hành Java Swing + JDBC (Phần 3) 24m
    • Component nâng cao

      • Java Swing 18 – JSpinner 7m
      • Java Swing 19 – JSeparator 2m
      • Java Swing 20 – JToggleButton 3m
      • Java Swing 21 – JSlider 4m
      • Java Swing 22 – JTree 10m
      • Java Swing 23 – JProgressBar 5m
      • Java Swing 24 – JEditorPane 5m
      • Java Swing 25 – JFormatedField 4m
      • Java Swing 26 – JColorChooser 4m
      • Java Swing 27 – JFileChooser 7m
    • Menu và Pane
    • Layout

      • Java Swing 37 – JToolbar 3m
      • Java Swing 38 – BorderLayout 3m
      • Java Swing 39 – GridLayout 3m
      • Java Swing 40 – FlowLayout 3m
      • Java Swing 41 – BoxLayout 3m
      • Java Swing 42 – CardLayout 4m
      • Java Swing 43 – NullLayout 2m
      • Java Swing 44 – AbsoluteLayout 2m
      • Java Swing 45 – Thực hành layout (Phần 1) 11m
      • Java Swing 46 – Thực hành layout (Phần 2) 6m
  • Component cơ bản

Miễn phí

Kiến thức yêu cầu:

Hỗ trợ khóa học gồm:

Keywords searched by users: java swing windows 10

How To Create A Simple Login Form Using Java Swing Gui (Windows Builder) -  Youtube
How To Create A Simple Login Form Using Java Swing Gui (Windows Builder) – Youtube
Java-Swing · Github Topics · Github
Java-Swing · Github Topics · Github
Windowlistener Trong Java Swing - Học Lập Trình Java Online - Viettuts
Windowlistener Trong Java Swing – Học Lập Trình Java Online – Viettuts
Cài Đặt Netbeans Và Viết Chương Trình Java Swing Đầu Tiên - Deft Blog
Cài Đặt Netbeans Và Viết Chương Trình Java Swing Đầu Tiên – Deft Blog
Java Swing Gui Programming Tutorial | Java Swing (Graphical User Interface)  Tutorial - Youtube
Java Swing Gui Programming Tutorial | Java Swing (Graphical User Interface) Tutorial – Youtube
93 Java Swing Gui Multi Windows - Youtube
93 Java Swing Gui Multi Windows – Youtube
Tổng Hợp Các Layout Trong Java Swing - Deft Blog
Tổng Hợp Các Layout Trong Java Swing – Deft Blog
Installing Java Windowbuilder (Gui Designer Plugin ) On Eclipse - Youtube
Installing Java Windowbuilder (Gui Designer Plugin ) On Eclipse – Youtube
Creating First Java Swing Gui Application With Netbeans Ide - Youtube
Creating First Java Swing Gui Application With Netbeans Ide – Youtube
15 Java Swing Examples
15 Java Swing Examples
Java Swing - Windows Filechooser Using Jnafilechooser - Youtube
Java Swing – Windows Filechooser Using Jnafilechooser – Youtube
How To Beautify Your Java Applications | Opensource.Com
How To Beautify Your Java Applications | Opensource.Com
Timer In Java Swing | Learn How To Use Timer In Java Swing?
Timer In Java Swing | Learn How To Use Timer In Java Swing?
How To Install Windowbuilder In Eclipse Ide - Youtube
How To Install Windowbuilder In Eclipse Ide – Youtube
Java Swing | Jprogressbar - Geeksforgeeks
Java Swing | Jprogressbar – Geeksforgeeks
Đồ Án Java Swing - Quản Lý Thư Viện (Oop)
Đồ Án Java Swing – Quản Lý Thư Viện (Oop)

See more here: kientrucannam.vn

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *