TITLE:JInternalFrameを半透明にする

JInternalFrameを半透明にする

編集者:Terai Atsuhiro
作成日:2007-04-30
更新日:2022-01-17 (月) 05:28:50

概要

JInternalFrameのフレームを半透明にします。

#screenshot

サンプルコード

JPanel p1 = new JPanel();
p1.setOpaque(false);

JPanel p2 = new JPanel() {
  public void paintComponent(Graphics g) {
    //super.paintComponent(g);
    g.setColor(new Color(100,50,50,100));
    g.fillRect(0,0,getWidth(), getHeight());
  }
};

JPanel p3 = new JPanel() {
  public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g2.setPaint(new Color(100,120,100,100));
    g2.fillRect(0,0,getWidth(),getHeight());
    int cs = 4;
    for(int i=0;i*cs<getWidth();i++) {
      for(int j=0;j*cs<getHeight();j++) {
        if((i+j)%2==0) g2.fillRect(i*cs, j*cs, cs, cs);
      }
    }
  }
};
//......

protected JInternalFrame createFrame(JPanel panel) {
  MyInternalFrame frame = new MyInternalFrame();
  if(panel!=null) {
    frame.setContentPane(panel);
    panel.add(new JLabel("label"));
    panel.add(new JButton("button"));
  }
  desktop.add(frame);
  frame.setVisible(true);
  //......
  • &jnlp;
  • &jar;
  • &zip;

解説

  • Frame#1
    • ContentPaneをsetOpaque(false)して透過しています。
  • Frame#2
    • ContentPaneを半透明な色で塗りつぶしています。
  • Frame#3
    • ContentPaneを半透明な色を使ってチェック柄で塗りつぶしています。

コメント