자바 창 최대화에 대한 질문입니다
딸기향
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Messenger extends JFrame {
JMenuBar mb;
JMenu file_menu, i_menu, f_menu, g_menu, h_menu;
JMenuItem login_item, logout_item, messege_item, exit_item, s_item, memo_item, pail_item, sum_item, fmove_item, fdel_item, gsum_item, gmove_item, gdel_item, inpo_item;
JTextArea disp;
public Messenger(){
//로그인 패널시작
setLayout(null);
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
JPanel p5 = new JPanel();
JLabel l = new JLabel (I D);
JLabel la = new JLabel(P W);
JButton bt = new JButton(로그인);
JButton bt1 = new JButton(ID/PW 찾기);
JButton bt2 = new JButton(회원가입);
JTextField tf = new JTextField(10);
JPasswordField tt = new JPasswordField(10);
Choice menu= new Choice();
p1.add(l);
p1.add(tf);
add(p1);
p2.add(la);
p2.add(tt);
add(p2);
p3.add(bt);
add(p3);
p4.add(bt1);
add(p4);
p5.add(bt2);
add(p5);
p1.setBounds(100, 170, 160, 30);
p2.setBounds(100,210,160,30);
p3.setBounds(40,290,100,35);
p4.setBounds(140,290,100,35);
p5.setBounds(250,290,100,35);
setTitle(FREE 메신저);
//로그인 패널 끝
//메뉴 바 설정시작
mb = new JMenuBar();
file_menu = new JMenu(파일);
i_menu = new JMenu(인맥관리);
f_menu = new JMenu(친구관리);
g_menu = new JMenu(그룹관리);
h_menu = new JMenu(도움말);
//각 메뉴에 들어갈 메뉴 아이템 생성
login_item = new JMenuItem(로그인);
logout_item = new JMenuItem(로그아웃);
messege_item = new JMenuItem(메시지함열기);
exit_item = new JMenuItem(종료);
s_item = new JMenuItem(대화하기);
memo_item = new JMenuItem(쪽지보내기);
pail_item = new JMenuItem(파일보내기);
sum_item = new JMenuItem(친구추가);
fmove_item = new JMenuItem(친구이동);
fdel_item = new JMenuItem(친구삭제);
gsum_item = new JMenuItem(그룹추가);
gmove_item = new JMenuItem(그룹이동);
gdel_item = new JMenuItem(그룹삭제);
inpo_item = new JMenuItem(정보);
//메뉴아이템들 원하는 위치에 배치
file_menu.add(login_item);
file_menu.add(logout_item);
file_menu.add(messege_item);
file_menu.add(exit_item);
i_menu.add(s_item);
i_menu.add(memo_item);
i_menu.add(pail_item);
f_menu.add(sum_item);
f_menu.add(fmove_item);
f_menu.add(fdel_item);
g_menu.add(gsum_item);
g_menu.add(gmove_item);
g_menu.add(gdel_item);
h_menu.add(inpo_item);
//메뉴바를 현재창에 적재
mb.add(file_menu);
mb.add(i_menu);
mb.add(f_menu);
mb.add(g_menu);
mb.add(h_menu);
//메뉴바를 현재창에 설정
setJMenuBar(mb);
setSize(400,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new Messenger();
}
}여기서 일단 최대화를 하지 않으면 아이디와 비밀번호, 버튼들이 좌표에 맞게 유지되는데
최대화 시키면 좌표대로만 되는데 여기서 최대화 했을 때 중앙 메뉴들이 중앙에 위치 하게 하려면 어떻게 해야 하나요?
그리고setBounds(int.int.int.int)가 너무 손이 많이 가는데 setBounds 말고 다른 방법으로 배치할 순 없나요?
-
여신
LayOutManager에서 BoarderLayout에서 Center영역으로 배치를 시키면 어떨런지요?
-
우수리
boardlayout을 활용 잘하시면 될겁니다... 사이트에도 layout에 대한 설명이 있습니다...
setlayout(null)일 경우는 setbounds.로 좌표설정을 하셔야만 되구요...