下面是一个简单的示例,展示了macosx上的预期行为;您可以将其与您正在做的操作进行比较,以供参考。
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);
}
}));
}
}