L形的java应用程序窗口

我想创build一个“L”形状的Java应用程序,以便应用程序只占用屏幕的左边界和底部边界。 我也不希望正常的边框和标题栏在顶部。 我见过其他人创造这样的圈子和其他形状,但没有复杂的形状。 这是一个Windows XP电脑,将永远不会在任何其他的操作系统。

那么,我将如何做到这一点?

带有setUndecorated java.awt.Window / javax.swing.JWindowjava.awt.Frame / javax.swing.JFrame将创建无框窗口。 你可以把两个或更多的一起创建一个L形。

Sun JRE从6月10日起,也有非标准的API或非矩形和透明窗口。

我认为这应该是可能的,虽然你可能要小心布置你的组件。 如果你看这里 ,并阅读设置窗口的形状部分它说下面的“该形状可以是java.awt.Shape接口的任何实例”。 如果您再查看Shape接口,则java.awt.Polygon将实现该接口。 所以你应该能够实现一个多边形w / a“L”形状。 试一试。

在这里,你去阿萨,这正是你所需要的:

 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.addComponentlistner(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); } 

参考 – >“设置窗口的形状”