透明を作成しようとしてJFrame
います。つまり、閉じるボタンのある上部のバーである境界線が最小化されている間、内部が完全に透明なウィンドウです。新しいJpanel
を作成してから を使用しようとしましたpanel.setOpaque(false);
が、役に立ちませんでした。
私はスイングとJava GUIに非常に慣れていないので、助けてもらいたいです。
透明を作成しようとしてJFrame
います。つまり、閉じるボタンのある上部のバーである境界線が最小化されている間、内部が完全に透明なウィンドウです。新しいJpanel
を作成してから を使用しようとしましたpanel.setOpaque(false);
が、役に立ちませんでした。
私はスイングとJava GUIに非常に慣れていないので、助けてもらいたいです。
あなたがやりたいことは可能ですが、あなたが想像している方法ではありません...
標準のオペレーティング システムのウィンドウ装飾 (つまり、ウィンドウの境界線、閉じる、最大化、最小化ボタン) が必要な場合、それは不可能です。「装飾」されたフレームに透明度を適用することはできません。
ただし、これは Java のデフォルトのウィンドウ装飾を使用して行うことができます。以下のコードを試してください。
public static void main(String[] args) {
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.RED);
g.drawRect(32,32,32,32);
}
};
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame f = new JFrame();
f.add(panel);
f.setSize(256,256);
// The following two statements cause the window-transparency:
f.setUndecorated(true);
f.setBackground(new Color(0,255,0,0));
f.setVisible(true);
}
個人的には、Java ウィンドウの装飾が見栄えがよくないと思います...それとは別に、OS 固有の機能 (ウィンドウを画面の端に移動してウィンドウを「半分最大化」することによるウィンドウのスナップ機能など) はありません。うまくいきません... 私にとってこれは契約を破るものですが、ニーズによっては、許容できる解決策になる可能性があります。:)