±Û¾´ÀÌ :ÀÌ»óÈ£ 1999³â 5¿ù 25ÀÏ 14:43:57
swingÀ» Å×½ºÆ®ÇÏ°í ÀÖ½À´Ï´Ù¸¸ ¹Ì¸® ÇϳªÀÇ class¸¦ package·Î
ÀÛ¼ºÇÏ¿© ³õ°í package³»ÀÇ class¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë°í
½Í½À´Ï´Ù. ÇÁ·Î±×·¥ÀÇ Coding ¹æ¹ýÀº ¾Ë°Ú´Âµ¥ PackageÀ» ¾î¶»°Ô
ÄÄÆÄÀÏÇÏ¿© ³õ°í »ç¿ëÇÏ´ÂÁö ÀÛ¾÷ ¹æ¹ýÀ» ¾Ë°í ½Í½À´Ï´Ù.
<<¼Ò½ºÇÁ·Î±×·¥>>
1. package ÀÛ¼º¿ë java source
package dl;
import java.awt.*;
import java.util.*;
public class DialogLayout implements LayoutManager {
protected int m_divider = -1;
protected int m_hGap = 10;
protected int m_vGap = 5;
public DialogLayout() {}
public DialogLayout(int hGap, int vGap) {
m_hGap = hGap;
m_vGap = vGap;
}
public void addLayoutComponent(String name, Component comp) {};
public void removeLayoutComponent(Component comp) {};
public Dimension preferredLayoutSize(Container parent) {
int divider = getDivider(parent);
int w = 0;
int h = 0;
for (int k=1 ; k<parent.getComponentCount(); k+=2) {
Component comp = parent.getComponent(k);
Dimension d = comp.getPreferredSize();
w = Math.max(w, d.width);
h += d.height + m_vGap;
}
h -= m_vGap;
Insets insets = parent.getInsets();
return new Dimension(divider+w+insets.left+insets.right,
h+insets.top+insets.bottom);
}
public Dimension minimumLayoutSize(Container parent) {
return preferredLayoutSize(parent);
}
public void layoutContainer(Container parent) {
int divider = getDivider(parent);
Insets insets = parent.getInsets();
int w = parent.getWidth() - insets.left - insets.right - divider;
int x = insets.left;
int y = insets.top;
for (int k=1 ; k<parent.getComponentCount() ; k+=2) {
Component comp1 = parent.getComponent(k-1);
Component comp2 = parent.getComponent(k);
Dimension d = comp2.getPreferredSize();
comp1.setBounds(x, y, divider-m_hGap, d.height);
comp2.setBounds(x+divider, y, w, d.height);
y += d.height + m_vGap;
}
}
public int getHHap() {
return m_hGap;
}
public int getVGap() {
return m_vGap;
}
public void setDivider(int divider) {
if (divider > 0)
m_divider = divider;
}
public int getDivider() {
return m_divider;
}
protected int getDivider(Container parent) {
if (m_divider > 0)
return m_divider;
int divider = 0;
for (int k =0 ; k < parent.getComponentCount() ; k+=2) {
Component comp = parent.getComponent(k);
Dimension d = comp.getPreferredSize();
divider = Math.max(divider, d.width);
}
divider += m_hGap;
return divider;
}
public String toString() {
return getClass().getName() + "[hgap=" + m_hGap + ", vgap="
+ m_vGap + ",divider=" + m_divider + "]";
}
}
2. package³»ÀÇ class¸¦ importÇÏ¿© »ç¿ëÇÏ´Â ÇÁ·Î±×·¥
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
//import DialogLayout;
import dl.*;
class Layout3 extends JFrame {
public Layout3() {
super("Fright Reservation(Layout3) Dialog..");
setSize(400,500);
JPanel p1 = new JPanel();
JPanel p1r = new JPanel();
p1r.setBorder(new EmptyBorder(10, 10, 10, 10));
p1r.setLayout(new DialogLayout(20, 5));
p1r.add(new JLabel("Date:"));
p1r.add(new JTextField());
p1r.add(new JLabel("From:"));
JComboBox cb1 = new JComboBox();
cb1.addItem("Newyork");
p1r.add(cb1);
p1r.add(new JLabel("To:"));
JComboBox cb2 = new JComboBox();
cb2.addItem("London");
p1r.add(cb2);
p1.add(p1r);
getContentPane().add(p1, BorderLayout.NORTH);
JPanel p2 = new JPanel(new BorderLayout());
p2.setBorder(new TitledBorder(new EtchedBorder(), "Availiable Frights"));
JList list = new JList();
JScrollPane ps = new JScrollPane(list);
p2.add(ps, BorderLayout.CENTER);
getContentPane().add(p2, BorderLayout.CENTER);
JPanel p4 = new JPanel();
JPanel p4c = new JPanel();
p4c.setLayout(new GridLayout(1, 3, 5, 5));
JButton b1 = new JButton("Search");
p4c.add(b1);
JButton b2 = new JButton("Purchase");
p4c.add(b2);
JButton b3 = new JButton("Exit");
p4c.add(b3);
p4.add(p4c);
getContentPane().add(p4, BorderLayout.SOUTH);
WindowListener wndCloser = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(wndCloser);
setVisible(true);
}
public static void main (String[] args) {
//JWM Version Check
String vers = System.getProperty("java.version");
if (vers.compareTo("1.1.2") < 0) {
System.out.println("!!!WARNING: Swing must be run with a " +
"1.1.2 or higher version VM!!!");
}
//look & feel ÁöÁ¤
try {
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //Windows L&F
}
catch (Exception e) {
System.err.println("Look-And_FeelÀ» ·ÎµåÇÒ ¼ö ¾ø´Ù.");
}
new Layout3();
}
}