사용자 정의 윈도우의 프레임 헤더를 설정하는 방법은 무엇입니까?사용자 정의 텍스처로 JFrame 만들기
대신 파란색 머리글 대신 이미지에서 텍스처를 사용하고 싶습니다.
코드 :
final JFrame frame = new JFrame();
BufferedImage image = ImageIO.read(new File("d:/texture.bmp"));
기본 창 :
사용자 정의 윈도우의 프레임 헤더를 설정하는 방법은 무엇입니까?사용자 정의 텍스처로 JFrame 만들기
대신 파란색 머리글 대신 이미지에서 텍스처를 사용하고 싶습니다.
코드 :
final JFrame frame = new JFrame();
BufferedImage image = ImageIO.read(new File("d:/texture.bmp"));
기본 창 :
난 당신이 적어도 플랫폼 특정 솔루션을 구현하는 네이티브 코드를 사용하지 않고 JFrame의 제목 표시 줄의 색상이나 이미지에 대해 아무것도 할 수 있다고 생각하지 않습니다. 이는 JFrame이 실제로 네이티브 윈도우 시스템을 사용하여 윈도우를 생성하기 때문입니다.
내부 프레임의 경우 자바에서 제어하는 창 내부에서 렌더링 된 구성 요소이므로 사용자 정의 할 수있는 것이 좋습니다. 실제로 UI 관리자에서 설정할 수있는 숫자는 JInternalFrame properties입니다.
이미지를 그 위에 놓을 수 없습니다. 그러나 JavaFX을 시도 할 수 있습니다. 여기
내가 외모와 느낌을 시도하여 한 무언가이다 : 나는 그것을 시도하지 않은
import javax.swing.*;
import javax.swing.plaf.*;
import javax.swing.plaf.metal.*;
public class TitleColor
{
public static void main_helper (String args[])
{
JFrame f = new JFrame();
f.setDefaultCloseOperation
(
JFrame.DISPOSE_ON_CLOSE
);
f.setSize (300, 300);
f.setLocationRelativeTo (null);
f.setUndecorated (true);
f.getRootPane().setWindowDecorationStyle
(
JRootPane.FRAME
);
JPanel panel = new JPanel();
panel.setBackground (java.awt.Color.white);
f.setContentPane (panel);
DefaultMetalTheme z =
new DefaultMetalTheme()
{
//inactive title color
public ColorUIResource
getWindowTitleInactiveBackground()
{
return new ColorUIResource
(java.awt.Color.orange);
}
//active title color
public ColorUIResource
getWindowTitleBackground()
{
return new ColorUIResource
(java.awt.Color.orange);
}
//start ActiveBumps
public ColorUIResource
getPrimaryControlHighlight()
{
return new ColorUIResource
(java.awt.Color.orange);
}
public ColorUIResource
getPrimaryControlDarkShadow()
{
return new ColorUIResource
(java.awt.Color.orange);
}
public ColorUIResource
getPrimaryControl()
{
return new ColorUIResource
(java.awt.Color.orange);
}
//end ActiveBumps
//start inActiveBumps
public ColorUIResource
getControlHighlight()
{
return new ColorUIResource
(java.awt.Color.orange);
}
public ColorUIResource
getControlDarkShadow()
{
return new ColorUIResource
(java.awt.Color.orange);
}
public ColorUIResource
getControl()
{
return new ColorUIResource
(java.awt.Color.orange);
}
//end inActiveBumps
};
MetalLookAndFeel.setCurrentTheme
(
z
);
try
{
UIManager.setLookAndFeel
(
new MetalLookAndFeel()
);
}
catch (Exception e)
{
e.printStackTrace();
}
SwingUtilities.updateComponentTreeUI (f);
f.setVisible (true);
}
public static void main (final String args[])
{
SwingUtilities.invokeLater
(
new Runnable()
{
public void run()
{
main_helper (args);
}
}
);
}
}
노력에 감사드립니다, drarkayl. – Serg
당신은 자바에 멋진 창을 만들 자바 FX를 시도해야합니다.
http://www.oracle.com/technetwork/java/javafx/samples/index.html
창 헤더를 바꾸기 만하면됩니다. 내 응용 프로그램에서는 창의 나머지 부분이 이미지 (애니메이션)로 채워집니다. – Serg
자신을하지만 어쩌면 있습니다 ([신디 모양과 필드] 주변 간섭에 의해 당신이 찾고있는 무엇을 달성 할 수 http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/synth.html). –