2011-01-25 2 views
26

sytray using Java 6 and Swing을 사용하는 Linux에서 Java 응용 프로그램을 만들고 있습니다. 앱이 멋지게 보이지만 (시스템의 룩앤필을 사용) 시스템 트레이스는 끔찍한 것처럼 보입니다. systray 메뉴가 오래된 widgedt (Motif?)처럼 보입니다. 모양과 느낌을 설정하는 방법이 있는지 궁금합니다 시스템 트레이 더 예뻐요. Heres는Linux에서 Java 시스템 트레이를 더 예쁘게 보이게하십시오.

트레이의 스크린 : enter image description here

+1

Motif가 그보다 더 좋아 보였습니다. P –

+2

'UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName());'이이 메뉴에 적용되지 않는 것으로 보아서 내 대답을 삭제했습니다. +1, 좋은 질문. –

+1

@pst : 실제로? 그게 바로 모티프가 닮은 것을 기억하는 것입니다. –

답변

5

JXTrayIcon을 사용해 보셨습니까?

컴 피즈로 우분투 10.10에서 SwingHelper에서 this demo을 테스트했는데 멋지게 보입니다.

+0

이것은 적절한 L & F (자체 테스트)를 사용하는 것으로 보입니다. – Petriborg

+0

여러 모니터에서 올바르게 작동하지 않습니다. – user11153

2

스윙 에뮬레이트 UI 위젯을 사용한다. 신청할 수있는 스타일이나 테마가 많이 있습니다. 네이티브 결과를 더 선호한다면 다른 위젯 툴킷을 찾아야 할 것입니다. 다음과 같은 몇 가지 옵션이 있습니다.

  1. 매우 기본적인 경우, 원래 Java UI 툴킷 인 AWT에 만족할 수 있습니다. 네이티브 위젯을 사용하지만 지원하는 위젯 라이브러리가 매우 제한적입니다.

  2. AWT 이상으로 이동하려면 eclipse.org에서 유지 관리되는 SWT를 고려하십시오. 그것은 네이티브로 구현 된 풍부한 위젯 라이브러리를 제공합니다.

+0

죄송합니다. 제가 질문을 잘못 작성했다고 생각합니다. 즉, 응용 프로그램이 아름답게 사용하고 렌더링한다는 것은 그저 짜증 난다는 것을 의미합니다. –

+0

나는 당신이 당신의 시스 트레이 코드에서 look-n-feeling 설정을 놓치고 있다고 생각할 것이다 ... look-n-feel을 설정하는 방법에 대한 코드 스 니펫을 가진 또 다른 대답이 있지만 지금은 사라진 것으로 보인다. –

+0

당신이 더 좋은 대답을 얻지 못한다면, AWT를 사용해 Systray 메뉴를 사용하는 것이 좋습니다. 나머지는 Swing으로 남겨 두는 것이 좋습니다. AWT는이 메뉴를 완벽하게 렌더링 할 수 있으며 이미 JRE에 있으며 사용자는 look-n-feel biz와 경쟁 할 필요가 없습니다. –

2

Systray에 스윙을 사용 AWT 때문에, 당신은 시스템 트레이에 멋져 보이는합니다. 어쩌면 당신은 SWT로 시도 할 수 있습니다 :)

2

나는 그것에 대한 자신의 라이브러리를 썼습니다.

http://www.2shared.com/file/sQdjb6aG/jtray.html

사용법 :

import javax.swing.jtray.*; 

JTrayIcon.initSystemTray(); 
JTrayIcon icon = new JTrayIcon(img, "Tooltip", jpopupmenu); 
icon.displayMessage(null, "Title", "Multiline\nsecondline", 3000); // 3 seconds 

라이브러리는 몇 더러운 트릭을 사용 어쩌면 그것은 우분투에서 좋은 같은 Linux 플랫폼에서 작동하지 않을 수 있습니다, 여기에 링크입니다. Windows 및 OSX에서도 작동합니다.

+0

나는 이것을 내 작업에서 시도하고 곧 피드백을 줄 것이다 ... –

1

내가 직접 시도하지 않은,하지만 당신은 나중에 업데이트 10 자바 6를 사용하거나하는 경우, 기분이? 내가 들었어요

Using Nimbus LAF

을 새로운 후광 모양을 사용할 수 있습니다 후광 모양을 사용하고 느낌, 그래서 이것은 당신의 최선의 방법이 될 수있다 우분투의 "JPopupMenu의"를 사용하여 트레이 아이콘 : 나는 큰 개선 될 것 혼자 JPopupMenu의를 사용하여, 무엇을 본 적이에서

Using JPopupMenu in TrayIcon

- Nimbus와 결합 된 그것은 굉장해야합니다.

1

빠른 & 더러운 해결 방법 : 장식되지 않은 JDialog를 만들고 JPopupMenu를 추가하고 TrayIcon의 마우스 수신기에서 원하는대로 표시되도록합니다.

관련 문제