Ví dụ mẫu mở các JFrame hay JDialog khác trong Java1


Trong topic này Tôi muốn hướng dẫn các bạn cách mở các cửa sổ windows khác trong Java .

Tình huống: Bạn quan sát hình Tôi chụp bên dưới, từ 1 cửa sổ chính chứa 2 JButton, mỗi JButton sẽ có chức năng mở các cửa sổ khác nhau. Ở đây Tôi muốn hướng dẫn 2 tình huống đó là mở 1 JFrame và 1 JDialog khác để từ đó các bạn có thể tham khảo áp dụng cho các chương trình tương tự. Bạn phải biết được sự khác biết giữa JFrame và JDialog (mặc định Tôi cho là các bạn đã biết  )

———————————————————————————————————————————————-

Tôi cung cấp cho các bạn 3 class:

class MyMainUI sẽ chứa 2 JButton : Open MyUI1 và Open MyUI2

class MyUI1 kế thừa từ JFrame

class MyUI2 kế thừa từ JDialog

Các bạn quan sát sự kiện tôi gán cho 2 JButton trong class MyMainUI để thấy được sự khác biệt.

———————————————————————————————————————————————-

Dưới đây là Coding mẫu:

=========================================================================

class MyMainUI

=========================================================================

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class MyMainUI extends JFrame{

private static final long serialVersionUID = 1L;

public MyMainUI(String title)

{

setTitle(title);

}

public void doShow()

{

setSize(400,200);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

addControl();

setVisible(true);

}

public void addControl()

{

JPanel pnBox=new JPanel();

JButton btn1=new JButton(“Open MyUI1”);

JButton btn2=new JButton(“Open MyUI2”);

pnBox.add(btn1);

pnBox.add(btn2);

btn1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

MyUI1 ui1=new MyUI1(“Hello Teo!”);

ui1.setVisible(true);

}

});

btn2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

MyUI2 ui2=new MyUI2(“Hello Teo!”);

ui2.setModal(true);

ui2.setVisible(true);

}

});

Container con=getContentPane();

con.add(pnBox);

}

public static void main(String[] args) {

MyMainUI mainUI=new MyMainUI(“Demo OPen Another Windows”);

mainUI.doShow();

}

}

=========================================================================

class MyUI1

=========================================================================

import java.awt.Container;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class MyUI1 extends JFrame{

private static final long serialVersionUID = 1L;

public MyUI1(String title)

{

setTitle(“My JFrame”);

doAddSomeControl();

}

public void doAddSomeControl()

{

JPanel pn=new JPanel();

JButton btn1=new JButton(“Hello I’m JFrame”);

JTextField txt1=new JTextField(15);

pn.add(btn1);

pn.add(txt1);

Container con=getContentPane();

con.add(pn);

setSize(300, 200);

setLocationRelativeTo(null);

}

}

=========================================================================

class MyUI2

=========================================================================

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class MyUI2 extends JDialog{

private static final long serialVersionUID = 1L;

public MyUI2(String title)

{

setTitle(“My JDialog”);

doAddSomeControl();

}

public void doAddSomeControl()

{

JPanel pn=new JPanel();

JButton btn1=new JButton(“Hi ! My name is JDialog”);

JButton btn2=new JButton(“Click me!”);

JTextField txt1=new JTextField(15);

JLabel lbl1=new JLabel(“Hello! Hello!”);

pn.add(btn1);

pn.add(txt1);

pn.add(lbl1);

pn.add(btn2);

btn2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null, “Click tui hả?”);

}

});

Container con=getContentPane();

con.add(pn);

setSize(300, 200);

setLocationRelativeTo(null);

}

}

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

One response

  1. Thưa thầy cho em hỏi làm thế nào để tạo giao tiếp được giữa 2 jframe ạ, ví dụ ở MyUI1 có 1 jtextfield, khi jtextfield = 50, click button thì ở MyMainUI button 1 sẽ đổi màu ạ?
    Cám ơn thầy ạ!

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

%d bloggers like this: