1

アプリケーションが画面の左と下の境界のみを占めるように、「L」の形をした Java アプリケーションを作成したいと考えています。また、通常の境界線とタイトルバーを上部に表示したくありません。他の人が円やそのような形を作っているのを見たことがありますが、複雑な形はありません。これは Windows XP コンピューター用であり、他の OS では使用できません。

それで、どうすればこれを行うことができますか?

4

3 に答える 3

4

java.awt.Window/javax.swing.JWindowおよびjava.awt.Frame/javax.swing.JFramesetUndecorated使用すると、フレームのないウィンドウが作成されます。2つ以上を組み合わせてL字型にすることもできます。

6u10 以降、Sun JRE には非標準 API または非長方形で透明なウィンドウもあります。

于 2009-10-22T18:05:08.960 に答える
1

ここでAsaに行きます、これはまさにあなたが必要とするものです:

import com.sun.awt.AWTUtilities;
import java.awt.Polygon;
import java.awt.Shape;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;

public static void main(String[] args)
{
    // create an undecorated frame
    final JFrame lframe = new JFrame();                
    lframe.setSize(1600, 1200);
    lframe.setUndecorated(true);

    // using component resize allows for precise control
    lframe.addComponentListener(new ComponentAdapter() {
        // polygon points non-inclusive
        // {0,0} {350,0} {350,960} {1600,960} {1600,1200} {0,1200}
        int[] xpoints = {0,350,350,1600,1600,0};
        int[] ypoints = {0,0,960,960,1200,1200};

        @Override
        public void componentResized(ComponentEvent evt)
        {  
            // create the polygon (L-Shape)
            Shape shape = new Polygon(xpoints, ypoints, xpoints.length);

            // set the window shape
            AWTUtilities.setWindowShape(lframe, shape);
        }
    });

    // voila!
    lframe.setVisible(true);
}

参考->「窓の形を設定する」

于 2009-11-12T22:34:44.800 に答える