我想知道是否有可能以这种方式实现JFrame的大小调整,它已被调整大小,例如linux中的标准窗口.更确切地说:如果用户开始拖动,则只有未来的大小才能预览窗口,而原始内容不会调整大小.一旦用户释放鼠标,Frame就会调整为该大小.在图像中:
(1)调整大小之前的状态

(2)用户开始下垂(在红色圆圈)

(3)用户释放鼠标,框架调整大小

是否有可能在Java Swing中意识到这一点?
编辑:
由于这个程序有一天也应该在较低的Java RE中作为7运行,我尝试将mKorbel建议与translucend Frame的注释中的建议结合起来.结果接近目标,除了
我认为第一点可以通过代码和MouseListener的组合来解析,类似于mouseReleased(),然后调整大小.这是代码,随意尝试.对于进一步的建议,我仍然对任何建议感到高兴.
该代码稍微修改了Java Tutorials 中的GradientTranslucentWindowDemo.java.我希望它可以在这里发布,否则请告诉我任何侵犯版权的行为.黑色JPanel应该是应用程序的内容,因为contentPane保持不可见.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.beans.PropertyChangeListener;
import javax.swing.*;
import static java.awt.GraphicsDevice.WindowTranslucency.*;
public class GroundFrame extends JFrame {
Timer timer;
JPanel panel2;
public GroundFrame() {
super("GradientTranslucentWindow");
setBackground(new Color(0,0,0,0));
setSize(new Dimension(300,200));
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel() {
panel.setBackground(new Color(0,0,0,0));
setContentPane(panel);
setLayout(null);
panel2 = new JPanel();
panel2.setBackground(Color.black);
panel2.setBounds(0,0,getContentPane().getWidth(), getContentPane().getHeight());
getContentPane().add(panel2);
addComponentListener(new ComponentListener() {
@Override
public void componentShown(ComponentEvent e) …Run Code Online (Sandbox Code Playgroud)