/*
* 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 swingdemo;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.HeadlessException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
*
* @author hi
*/
public class SwingDemo
extends JFrame {
/**
* @param args the command line arguments
*/
public SwingDemo
(String title
) throws HeadlessException
{ super(title);
this.setSize(400,600);
this.setLocationRelativeTo(null);
this.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE); this.setVisible(true);
creatAndShow();
}
public static void main
(String[] args
) { // TODO code application logic here
new SwingDemo("My Window");
}
private void creatAndShow() {
//Tạo một layout chứa các layout con
//Tạo layout phía Bắc
jpnNorth.
setBackground(Color.
red); jpnNorth.
setPreferredSize(new Dimension(0,
50)); lbNorth.
setForeground(Color.
WHITE); lbNorth.setFont(ft);
jpnNorth.add(lbNorth);
//Tạo layout phía Nam
jpnSouth.
setBackground(Color.
red); jpnSouth.setPreferredSize(jpnNorth.getPreferredSize());
lbSouth.
setForeground(Color.
WHITE); lbSouth.setFont(ft);
jpnSouth.add(lbSouth);
//Tạo layout phía Tây
jpnWest.
setBackground(Color.
BLUE); lbWest.setFont(ft);
lbWest.
setForeground(Color.
DARK_GRAY);
//Tạo layout phía Đông
jpnEast.
setBackground(Color.
BLUE); lbEast.setFont(ft);
lbEast.
setForeground(Color.
WHITE);
//Tạo layout trung tâm
jpnCenter.
setBackground(Color.
LIGHT_GRAY); lbCenter.setFont(ft);
lbCenter.
setForeground(Color.
WHITE);
con.add(jpnBorder);
}
}
LyoKICogVG8gY2hhbmdlIHRoaXMgbGljZW5zZSBoZWFkZXIsIGNob29zZSBMaWNlbnNlIEhlYWRlcnMgaW4gUHJvamVjdCBQcm9wZXJ0aWVzLgogKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSBmaWxlLCBjaG9vc2UgVG9vbHMgfCBUZW1wbGF0ZXMKICogYW5kIG9wZW4gdGhlIHRlbXBsYXRlIGluIHRoZSBlZGl0b3IuCiAqLwpwYWNrYWdlIHN3aW5nZGVtbzsKCmltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CmltcG9ydCBqYXZhLmF3dC5Db2xvcjsKaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKaW1wb3J0IGphdmEuYXd0LkZvbnQ7CmltcG9ydCBqYXZhLmF3dC5IZWFkbGVzc0V4Y2VwdGlvbjsKaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKaW1wb3J0IGphdmF4LnN3aW5nLkpMYWJlbDsKaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsKCi8qKgogKgogKiBAYXV0aG9yIGhpCiAqLwpwdWJsaWMgY2xhc3MgU3dpbmdEZW1vIGV4dGVuZHMgSkZyYW1lIHsKCiAgICAvKioKICAgICAqIEBwYXJhbSBhcmdzIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzCiAgICAgKi8KICAgIAogICAgCiAgICBwdWJsaWMgU3dpbmdEZW1vKFN0cmluZyB0aXRsZSkgdGhyb3dzIEhlYWRsZXNzRXhjZXB0aW9uIHsKICAgICAgICBzdXBlcih0aXRsZSk7CiAgICAgICAgdGhpcy5zZXRTaXplKDQwMCw2MDApOwogICAgICAgIHRoaXMuc2V0TG9jYXRpb25SZWxhdGl2ZVRvKG51bGwpOwogICAgICAgIHRoaXMuc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9uKEpGcmFtZS5FWElUX09OX0NMT1NFKTsKICAgICAgICB0aGlzLnNldFZpc2libGUodHJ1ZSk7CiAgICAgICAgY3JlYXRBbmRTaG93KCk7CiAgICB9CiAgICAKICAgIAoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICAvLyBUT0RPIGNvZGUgYXBwbGljYXRpb24gbG9naWMgaGVyZQogICAgICAgIG5ldyBTd2luZ0RlbW8oIk15IFdpbmRvdyIpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBjcmVhdEFuZFNob3coKSB7CiAgICAgICAgCiAgICAgICAvL1ThuqFvIG3hu5l0IGxheW91dCBjaOG7qWEgY8OhYyBsYXlvdXQgY29uCiAgICAgICAgSlBhbmVsIGpwbkJvcmRlciA9IG5ldyBKUGFuZWwoKTsKICAgICAgICBqcG5Cb3JkZXIuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CiAgICAgICAgRm9udCBmdCA9IG5ldyBGb250KCJBcmlhbCIsRm9udC5CT0xEfEZvbnQuSVRBTElDLDI1KTsKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAvL1ThuqFvIGxheW91dCBwaMOtYSBC4bqvYwogICAgICAgIEpQYW5lbCBqcG5Ob3J0aCA9IG5ldyBKUGFuZWwoKTsKICAgICAgICBqcG5Ob3J0aC5zZXRCYWNrZ3JvdW5kKENvbG9yLnJlZCk7CiAgICAgICAganBuTm9ydGguc2V0UHJlZmVycmVkU2l6ZShuZXcgRGltZW5zaW9uKDAsNTApKTsKICAgICAgICBKTGFiZWwgbGJOb3J0aCA9IG5ldyBKTGFiZWwoIk5vcnRoIik7CiAgICAgICAgbGJOb3J0aC5zZXRGb3JlZ3JvdW5kKENvbG9yLldISVRFKTsKICAgICAgICBsYk5vcnRoLnNldEZvbnQoZnQpOwogICAgICAgIGpwbk5vcnRoLmFkZChsYk5vcnRoKTsKICAgICAgICBqcG5Cb3JkZXIuYWRkKGpwbk5vcnRoLEJvcmRlckxheW91dC5OT1JUSCk7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgLy9U4bqhbyBsYXlvdXQgcGjDrWEgTmFtCiAgICAgICAgSlBhbmVsIGpwblNvdXRoID0gbmV3IEpQYW5lbCgpOwogICAgICAgIGpwblNvdXRoLnNldEJhY2tncm91bmQoQ29sb3IucmVkKTsKICAgICAgICBqcG5Tb3V0aC5zZXRQcmVmZXJyZWRTaXplKGpwbk5vcnRoLmdldFByZWZlcnJlZFNpemUoKSk7CiAgICAgICAgSkxhYmVsIGxiU291dGggPSBuZXcgSkxhYmVsKCJTb3V0aCIpOwogICAgICAgIGxiU291dGguc2V0Rm9yZWdyb3VuZChDb2xvci5XSElURSk7CiAgICAgICAgbGJTb3V0aC5zZXRGb250KGZ0KTsKICAgICAgICBqcG5Tb3V0aC5hZGQobGJTb3V0aCk7CiAgICAgICAganBuQm9yZGVyLmFkZChqcG5Tb3V0aCxCb3JkZXJMYXlvdXQuU09VVEgpOwogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIC8vVOG6oW8gbGF5b3V0IHBow61hIFTDonkKICAgICAgICBKUGFuZWwganBuV2VzdCA9IG5ldyBKUGFuZWwoKTsKICAgICAgICBqcG5XZXN0LnNldEJhY2tncm91bmQoQ29sb3IuQkxVRSk7CiAgICAgICAganBuV2VzdC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKICAgICAgICBKTGFiZWwgbGJXZXN0ID0gbmV3IEpMYWJlbCgiV0VTVCIsSkxhYmVsLkNFTlRFUik7CiAgICAgICAgbGJXZXN0LnNldEZvbnQoZnQpOwogICAgICAgIGxiV2VzdC5zZXRGb3JlZ3JvdW5kKENvbG9yLkRBUktfR1JBWSk7CiAgICAgICAganBuV2VzdC5hZGQobGJXZXN0LEJvcmRlckxheW91dC5DRU5URVIpOwogICAgICAgIGpwbkJvcmRlci5hZGQoanBuV2VzdCxCb3JkZXJMYXlvdXQuV0VTVCk7CiAgICAgICAgIAogICAgICAgICAKICAgICAgICAgCiAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIC8vVOG6oW8gbGF5b3V0IHBow61hIMSQw7RuZwogICAgICAgIEpQYW5lbCBqcG5FYXN0ID0gbmV3IEpQYW5lbCgpOwogICAgICAgIGpwbkVhc3Quc2V0QmFja2dyb3VuZChDb2xvci5CTFVFKTsKICAgICAgICBKTGFiZWwgbGJFYXN0ID0gbmV3IEpMYWJlbCgiRUFTVCIsSkxhYmVsLkNFTlRFUik7CiAgICAgICAgbGJFYXN0LnNldEZvbnQoZnQpOwogICAgICAgIGxiRWFzdC5zZXRGb3JlZ3JvdW5kKENvbG9yLldISVRFKTsKICAgICAgICBqcG5FYXN0LnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOwogICAgICAgIGpwbkVhc3QuYWRkKGxiRWFzdCxCb3JkZXJMYXlvdXQuQ0VOVEVSKTsKICAgICAgICBqcG5Cb3JkZXIuYWRkKGpwbkVhc3QsQm9yZGVyTGF5b3V0LkVBU1QpOwogICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgLy9U4bqhbyBsYXlvdXQgdHJ1bmcgdMOibSAKICAgICAgICBKUGFuZWwganBuQ2VudGVyID0gbmV3IEpQYW5lbCgpOwogICAgICAgIGpwbkNlbnRlci5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKICAgICAgICBqcG5DZW50ZXIuc2V0QmFja2dyb3VuZChDb2xvci5MSUdIVF9HUkFZKTsKICAgICAgICBKTGFiZWwgbGJDZW50ZXIgPSBuZXcgSkxhYmVsKCJDRU5URVIiLEpMYWJlbC5DRU5URVIpOwogICAgICAgIGxiQ2VudGVyLnNldEZvbnQoZnQpOwogICAgICAgIGxiQ2VudGVyLnNldEZvcmVncm91bmQoQ29sb3IuV0hJVEUpOwogICAgICAgIGpwbkNlbnRlci5hZGQobGJDZW50ZXIsQm9yZGVyTGF5b3V0LkNFTlRFUik7CiAgICAgICAganBuQm9yZGVyLmFkZChqcG5DZW50ZXIsQm9yZGVyTGF5b3V0LkNFTlRFUik7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgQ29udGFpbmVyIGNvbiA9IGdldENvbnRlbnRQYW5lKCk7CiAgICAgICAgY29uLmFkZChqcG5Cb3JkZXIpOwogICAgICAgIAogICAgfQogICAgCn0K