2011-03-25 3 views
1

자바에서 스윙 윈도우 프레임을 조작하는 방법은 무엇입니까? 색상을 변경하는 방법, PC 테마의 기본 스타일이 아니라 어떻게 이미지로 만들 수 있습니까?자바 스윙 윈도우 프레임

+2

여기에서 http://download.oracle.com/javase/tutorial/uiswing/components/frame.html을 방문하고 링크를 따라주십시오. –

답변

0

내가 아는대로, 그것을 할 방법이 없습니다. JWindow를 확장하는 사용자 정의 된 윈도우에 대한 고유 한 클래스를 생성 할 수 있습니다. 당신은 자신의 스타일을 만들 수 있습니다. 할 일이 조금 있습니다.

// add pacakge and imports as needed... 

/** 
* Sample class implementation for windows with own frame style. 
* Additional constructors may be added as needed. Default constructor used 
* to show principle. 
*/ 
public class MyWindow extends JWindow { 
    public MyWindow() { 
     super(); 
     initUI(); 
    } 

    private void initUI() { 
     setLayout(new BorderLayout()); 
     add(new MyWindowFrameTop(this)); 
     add(new MyWindowFrameLeft(this)); 
     add(new MyWindowFrameRight(this)); 
     add(new MyWindowFrameBottom(this)); 
    } 
} 

JWindow는 Java API 문서에서 말하는 "일급 시민"입니다. 그것은 바탕 화면 내의 모든 기능을 갖춘 창이지만 닫기, 최대화, 최소화 및 창 메뉴와 같은 창 작업에 대한 모든 구현이 누락되었습니다. 이 기능의 구현은 BorderLayout을 사용하고 프레임 객체의 자체 구현을 작동 시켜서 위와 같이 추가 할 수 있습니다. MyWindowFrameXXX 객체는 원하는 프레임 상자 부분, 제목 이미지 등을 그릴 수있는 JPanel 일 수 있습니다. 또한 창 동작을위한 버튼을 추가하고 크기 조정을위한 마우스 동작을 구현할 수도 있습니다. 이를 구현하기 위해 프레임 객체는 윈도우에서 모든 액션을 수행하기 위해 부모 윈도우 참조가 필요합니다.

모든 것을 여기에 쓰려면 여기까지 가야합니다. 제 생각에는 원리가 보였습니다. 실제 효과가 실제로 무엇인지는 알지 못합니다.

+0

몇 가지 예를 들려 줄 수 있습니까? – weardstuff

1

색상을 변경하려면 프레임 객체 또는 패널 객체에 setBackground (Color c) 메소드를 사용할 수 있습니다. 예 :

JFrame fr=new JFrame("Color demo"); 
fr.setBackground(Color.red); // color set to red 
fr.setSize(900,200);   // size changed 
fr.setResizable(false);  // you cant resize your window now 

더 당신이 this 또는 this one을 수행 할 수 귀하의 자바 프레임을 사용자 정의하십시오. 스윙을 시작할 수 있습니다 this website

+0

다른 스윙 구성 요소에도 setBackground (Color c)를 사용할 수 있습니다. –

+0

프레임을 의미하는 것은 종료 버튼이 아니라 배경입니다. – weardstuff

0

스윙에서 윈도우가 보이는 방식과 관련된 모든 것이 Look & Feel (LaF)에 의해 처리 될 수 있습니다. 자세한 내용은 the LaF tag을 참조하십시오 (썼습니다). 대부분의 모양과 느낌은 창의 내용과 창 안의 모든 구성 요소의 스타일을 지정합니다.

JDK에서 Swing과 함께 제공되는 많은 기본 LaF가 있습니다. 여기에는 Motif, Metal 및 Synth (자신을 사용자 정의하는 빈 스타일)이 포함됩니다. 온라인에서 찾아서 다운로드 할 수있는 제품이 많이 있습니다. GUI를 표시하기 전에 classpath에 넣고 기본 방법으로 UIManager.setLookAndFeel(...)을 실행하여 그 중 하나를 사용할 수 있습니다.

윈도우 프레임을 맞춤 설정하는 방법을 특별히 찾은 것처럼 들리지만 이는 자주 수행되지 않습니다. 저는 개인적으로 추천하지 않지만, 정말로 원한다면 WindowsetUndecorated(true)을 호출하여 프레임 장식을 끌 수 있습니다. 그러면 국경없는 창문이 열리게됩니다. 그런 다음 사용자 정의 닫기 버튼으로 닫기와 같이 원하는 창 기능을 다시 구현하는 방법을 결정해야합니다.