수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

[질문] JLabel과 JPanel에 관한 질문입니다! (소스도 넣었어요)

해솔

2023.04.01

label = new JLabel(0, label.CENTER);
label.setFont(font);
label.setBackground(Color.white);
label.setForeground(Color.pink);
background.add(BorderLayout.NORTH, label);레이블을 이렇게 처리했더니 저런 모양이 나옵니다.

글자 색상은 바뀌었는데.. 주변 배경색깔이 제가 원하는하얀색으로 바뀌지 않아서요.

무엇이 잘못된건지 모르겠습니다.ㅠㅠ

그리고 또 하나 질문은요.

소스를 만들기를 JPanel mainPanel을 만들어 GridLayout(4,4)를 써서 1~÷버튼까지 채웠구요

JPanel sidePanel을 만들고 BoxLayout.Y_AXIS 로 해서 AC와 = 버튼을 채웠습니다.

JPanel background 도 BorderLayout으로 만들어 mainPanel은 CENTER로, sidePanel은 EAST로, 위의 label은 NORTH로 넣었습니다.

그래서 이렇게 나왔는데 제가 원하는 모양은 이게 아니었거든요.ㅠ_ㅠ

= 부분만 너무 조그만데..
사실 애초에 GridLayout을 쓸 때, 5*4로 만들어서 (5,3) (5,4) 의 안쓰는 부분은 버튼을 안만들면 좋을텐데.. 모두 균등한 크기로요..

이게 가능한 말인지도 모르겠고.ㅠㅠ

가능하지 않다면.. 위의 그림처럼 아예 2번처럼 = 버튼을 크게 만들고 싶거든요..
어떻게 고쳐야 제가 원하는 모양으로 만들 수 있는지 가르쳐주세요^-^;; ㅠ_ㅠ;(소스 그래픽 관련 부분만 올리겠습니다~) JFrame frame;
JLabel label;
JPanel mainPanel, sidePanel;
JButton b1, b2, b3, b4, b5 ,b6 ,b7, b8, b9, b0,
bSum, bMin, bMul, bDiv, bEq, bDot, bAC, bBack;

frame = new JFrame(Calculater);
BorderLayout layout=new BorderLayout();
JPanel background=new JPanel(layout); GridLayout grid = new GridLayout(4,4);
grid.setVgap(1);
grid.setHgap(2);
mainPanel = new JPanel(grid);
background.add(BorderLayout.CENTER, mainPanel);

Font font = new Font(Dialog, Font.BOLD, 30); b1 =new JButton(1);
b1.setFont(font);
mainPanel.add(b1);

b2 = new JButton(2);
b2.setFont(font);
mainPanel.add(b2);

b3 = new JButton(3);
b3.setFont(font);
mainPanel.add(b3);

bSum = new JButton(+);
bSum.setFont(font);
mainPanel.add(bSum);

b4 = new JButton(4);
b4.setFont(font);
mainPanel.add(b4);

b5 = new JButton(5);
b5.setFont(font);
mainPanel.add(b5);

b6 = new JButton(6);
b6.setFont(font);
mainPanel.add(b6);

bMin = new JButton(-);
bMin.setFont(font);
mainPanel.anPanel.add(bMin);

b7 = new JButton(7);
b7.setFont(font);
mainPanel.add(b7);

b8 = new JButton(8);
b8.setFont(font);
mainPanel.add(b8);

b9 = new JButton(9);
b9.setFont(font);
mainPanel.add(b9);

bMul = new JButton(×);
bMul.setFont(font);
mainPanel.add(bMul);

bDot = new JButton(.);
bDot.setFont(font);
mainPanel.add(bDot);

b0 = new JButton(0);
b0.setFont(font);
mainPanel.add(b0); bBack = new JButton(노노);
bBack.setFont(font);
mainPanel.add(bBack);

bDiv = new JButton(÷);
bDiv.setFont(font);
mainPanel.add(bDiv);

sidePanel = new JPanel();
sidePanel.setLayout(new BoxLayout(sidePanel, BoxLayout.Y_AXIS));

bAC = new JButton(AC);
bAC.setFont(font);
sidePanel.add(bAC);

bEq = new JButton(=);
bEq.setFont(font);
sidePanel.add(bEq);

label = new JLabel(0, label.CENTER);
label.setFont(font);
label.setBackground(Color.black);
label.setForeground(Color.pink);
background.add(BorderLayout.NORTH, label);

background.add(BorderLayout.EAST, sidePanel); frame.getContentPane().add(background);
frame.setBounds(50,50,300,300);
frame.pack();
frame.setVisible(true);

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 리라

    좀 어려웠는데 덕분에 무사히 과제를 마쳤습니다^-^ 정말 감사드려요~!!!!!!

  • 스위트초코

    setPreferenceSize()를 써보시거나, 정 아니면, 패널을 하나 더 만들어서 붙이고, 레이아웃은 GridLayout(0,2)을 쓰고, 그 위에 패널을 하나 더 붙이신다음, 그것도 레이아웃은 GridLayout(0,2)로 하시고 버튼들을 붙이시면 될 듯 싶네요.

  • 외국녀

    님아 정말 감사드려요~!! 배경은 하얀색으로 예쁘게 되었습니다^-^ 그런데 = 버튼이 아직 문제예요~ 수다님께서 가르쳐주신대로 beq.setsize(bac.getsize().width, bac.getsize().height); 요렇게 했는데도 버튼 크기가 안바뀌네요ㅠ_ㅠ 암튼 너무 감사드려요!!! ^-^***

  • VE

    가장 간단하게는 버튼의 크기를 늘리는 것입니다. 즉, 다른 버튼(예를 들면 AC 버튼의 크기를 받아서) 그 크기만큼 =버튼의 크기를 설정하시면 됩니다. bEq.setSize(bAC.getSize().width, bAC.getSize().Height)

  • 앵겨쪼

    라벨의 색상은 글자부분에만 적용됩니다. 따라서 배경을 흰색으로 하시고 싶으시면, background의 North부분에 패널을 붙이시고, 그 패널의 색상을 흰색(setBackgound(Color.WHITE))으로 하시고 그 패널 위에 라벨을 붙이시기 바랍니다.

번호 제 목 글쓴이 날짜
2699380 메뉴가 계단식으로 나타나요.. ㅠ.ㅠ (5) 스릉흔다 2025-06-25
2699354 영문 웹폰트 관련 질문입니다!!! (1) 치킨마루 2025-06-25
2699329 윈도우 미디어 플레이어 URL 질문!!! (1) 제철 2025-06-25
2699296 동영상 배경 질문드려요!!!!!!!!!!!!!! 핫파랑 2025-06-24
2699214 position:fixed 에 대한 질문입니다.. (7) 사이 2025-06-24
2699183 제이쿼리 이미지 슬라이드 위치값 수정 초엘 2025-06-23
2699153 테마[ADORABLE]에서 페이지생성시 하위페이지는 2개밖에 안되나요? 흰여울 2025-06-23
2699129 네이버 블로그 또는 사이트의 글을 불러오기 갤원 2025-06-23
2699070 탭메뉴처럼 셀렉트 박스를 이용해서 내용을 출력할 수 있는 방법이 있을까요. (3) 큰꽃늘 2025-06-22
2699016 인터넷이 안되는 환경에서 validator설치방법 (3) 은송이 2025-06-22
2698988 대체 C++ 6.0 exe 아이콘은 어떻게 넣는건가요? 외국녀 2025-06-22
2698960 음성파일을 embed로 작업했는데..웹 표준코딩으로 변경하려면 어떻게 해야하나요? (1) 잎새 2025-06-21
2698932 메뉴목록 풍선창 만들기 html (2) 하늘이 2025-06-21
2698901 http://www.zeitgeistbot.com/ 이 사이트처럼 움직이는 효과를 무엇이라고 하나요? 누림 2025-06-21
2698876 table width값 크로스브라우징에 대한 문의 (2) 볼수록매력 2025-06-21
2698849 c언어 질문. (3) 아름나 2025-06-20
2698823 setInterval 이벤트 제거 하려면... 가온길 2025-06-20
2698796 이 오류를 이해를 못하겠어요 Addicted 2025-06-20
2698712 IF 문 이 계속 오류가 나요 (2) 옆집오빠야 2025-06-19
2698687 이미지를 클릭하면 그 이미지를 다운받게해주는 방법 질문요 ^^ (미해결) (5) 해지개 2025-06-19
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com