我编写了一个Java程序,根据应用程序状态改变JFrame是否可调整大小。在Windows中,这可以很好地工作,当它可调整大小时,当按钮被禁用时,最大化按钮被启用。但是,在我的Mac上,当我将resizable更改为true时,缩放按钮不会启用但窗口 DOES 变得可调整大小 - 调整大小的抓取器显示。
不幸的是,我无法在一个简单的应用程序中复制此行为。只有在我的复杂应用程序中才会显示。所以我想知道JFrame的可调整大小状态除了启用缩放按钮会影响什么?
答案 0 :(得分:1)
这是一个简单的示例,显示了Mac OS X上的预期行为;你可以将它与你正在做的事情进行比较。
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
public class FrameTest extends JPanel implements Runnable {
private JFrame f;
private boolean test;
public static void main(String[] args) {
EventQueue.invokeLater(new FrameTest());
}
@Override
public void run() {
f = new JFrame("Test");
test = f.isResizable();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public FrameTest() {
this.add(new JToggleButton(new AbstractAction("Test") {
@Override
public void actionPerformed(ActionEvent e) {
test = !test;
f.setResizable(test);
}
}));
}
}