java修改窗口形状_Java形状窗口与大纲

我成功渲染出多边形窗口.但是,我想用一个薄笔画来概述它.

是否可以在Java中勾勒出形状窗口?

这是我的工作代码,我使用componentResized方法设置窗口的形状.但是,如果还有其他方法可以获得轮廓,那么当Tab-Window最小化时以及Tab-Window最大化时,请帮助.

//LongTab.java

//Desktop Tab

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.geom.*;

import static java.awt.GraphicsDevice.WindowTranslucency.*;

public class LongTab extends JWindow implements MouseListener{

static LongTab t;

Boolean isVisible = false;

final static BasicStroke stroke = new BasicStroke(2.0f);

GeneralPath path;

public LongTab(){

addMouseListener(this);

setSize(500, 1080);

addComponentListener(new ComponentAdapter() {

@Override

public void componentResized(ComponentEvent e){

Polygon polygon = new Polygon();

polygon = new Polygon();

polygon.addPoint(40, 1080);

polygon.addPoint(40, 700);

polygon.addPoint(20, 690);

polygon.addPoint(20, 400);

polygon.addPoint(40, 390);

polygon.addPoint(40, 0);

polygon.addPoint(500, 0);

polygon.addPoint(500, 1080);

path = new GeneralPath();

path.append(polygon, true);

setShape(path);

}

});

setSize(40, 1080);

setLocation(1880, 0);

}

public void mouseClicked (MouseEvent me) {

if(!isVisible) {

isVisible=true;

t.setSize(400, 1080);

t.setLocation(1520, 0);

return;

}

if(isVisible) {

isVisible=false;

t.setSize(40, 1080);

t.setLocation(1880, 0);

}

return;

}

public void mouseEntered (MouseEvent me) {

}

public void mousePressed (MouseEvent me) {

}

public void mouseReleased (MouseEvent me) {

}

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g2.setStroke(stroke);

//if(!isVisible)

//g2.draw(path);

//repaint();

}

public void mouseExited (MouseEvent me) {

}

public static void main (String[] args){

SwingUtilities.invokeLater(new Runnable(){

@Override

public void run() {

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

GraphicsDevice gd = ge.getDefaultScreenDevice();

//If shaped windows aren't supported, exit.

if (!gd.isWindowTranslucencySupported(PERPIXEL_TRANSPARENT)) {

System.err.println("Shaped windows are not supported");

System.exit(0);

} else {

t = new LongTab();

t.setVisible(true)

}

}

});

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值