Swing/TranslucentFrame のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TranslucentFrame へ行く。
- 1 (2008-12-01 (月) 15:04:38)
- 2 (2008-12-01 (月) 19:50:49)
- 3 (2008-12-15 (月) 04:24:54)
- 4 (2009-01-16 (金) 16:29:06)
- 5 (2009-05-07 (木) 10:42:38)
- 6 (2009-10-09 (金) 15:11:55)
- 7 (2010-05-24 (月) 15:27:28)
- 8 (2010-11-10 (水) 20:59:48)
- 9 (2011-02-08 (火) 04:02:46)
- 10 (2013-01-13 (日) 19:18:30)
- 11 (2013-05-24 (金) 03:25:25)
- 12 (2013-08-17 (土) 15:40:30)
- 13 (2013-10-10 (木) 19:41:21)
- 14 (2013-10-16 (水) 14:24:13)
- 15 (2014-10-20 (月) 19:41:17)
- 16 (2014-11-01 (土) 00:46:09)
- 17 (2014-12-02 (火) 01:55:04)
- 18 (2015-12-10 (木) 04:08:26)
- 19 (2016-02-03 (水) 18:23:28)
- 20 (2016-09-29 (木) 17:13:15)
- 21 (2017-11-02 (木) 15:34:40)
- 22 (2017-11-10 (金) 14:05:58)
- 23 (2018-02-24 (土) 19:51:30)
- 24 (2019-05-22 (水) 19:35:38)
- 25 (2019-07-09 (火) 19:24:27)
- 26 (2021-03-18 (木) 01:07:37)
- 27 (2022-08-20 (土) 22:15:25)
- 28 (2022-10-01 (土) 05:00:49)
TITLE:JTableのTooltipsを行ごとに変更
SynthLookAndFeelでJInternalFrameを半透明にする
Posted by terai at 2008-12-01
概要
Synthを使ったLookAndFeelで、JInternalFrame を半透明にします。
- &jnlp;
- &jar;
- &zip;
#screenshot
サンプルコード
try{
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
SynthLookAndFeel.setStyleFactory(
new MySynthStyleFactory(SynthLookAndFeel.getStyleFactory()));
}catch(Exception e) {
e.printStackTrace();
}
class MySynthStyleFactory extends SynthStyleFactory {
private SynthStyleFactory wrappedFactory;
public MySynthStyleFactory(SynthStyleFactory factory) {
this.wrappedFactory = factory;
}
public SynthStyle getStyle(JComponent c, Region id) {
SynthStyle s = wrappedFactory.getStyle(c, id);
//if(id==Region.INTERNAL_FRAME_TITLE_PANE||id==Region.INTERNAL_FRAME) {
if(id==Region.INTERNAL_FRAME) {
s = new TranslucentSynthSytle(s);
}
return s;
}
}
class TranslucentSynthSytle extends SynthStyle {
private final SynthStyle style;
public TranslucentSynthSytle(SynthStyle s) {
style = s;
}
public SynthPainter getPainter(final SynthContext context) {
return new SynthPainter() {
public void paintInternalFrameBackground(SynthContext context,
Graphics g,
int x, int y, int w, int h) {
g.setColor(new Color(100,200,100,100));
g.fillRoundRect(x,y,w-1,h-1,15,15);
}
};
}
public boolean isOpaque(SynthContext context) {
if(context.getRegion()==Region.INTERNAL_FRAME) {
return false;
}else{
return style.isOpaque(context);
}
}
public Color getColorForState(SynthContext context, ColorType type) {
return null; //Color.RED;
}
public Font getFontForState(SynthContext context) {
return null; //new Font("MONOSPACE", Font.ITALIC, 24);
}
//...
解説
上記のサンプルでは、SynthStyle#paintInternalFrameBackground、SynthStyle#isOpaqueなどのメソッドをオーバーライドしてJInternalFrame を半透明にします。
- Synthを使ったLook&Feel
- JDK 1.6.0_10 で追加された NimbusLookAndFeel や、GTKLookAndFeel など
#screenshot(,screenshot1.png)
- JDK 1.6.0_10 で追加された NimbusLookAndFeel や、GTKLookAndFeel など