Что влияет на активированный статус кнопки масштабирования на JFrame для Mac?
У меня есть Java-программа, которую я написал, которая изменяет, изменяется ли JFrame в зависимости от состояния приложения. В Windows это отлично работает, когда он изменен по размеру, кнопка максимизации включена, когда она не отключена. Тем не менее, на моем Mac, когда я изменяю resizable обратно к истине, кнопка масштабирования не включается, но окно становится изменяемым по размеру - отображается рендеринг размера.
К сожалению, я не смог воспроизвести это поведение в простом приложении. Только в моем сложном приложении это появляется. Поэтому мне интересно, чем изменяет состояние JFrame, что влияет на включение кнопки масштабирования?
Вот простой пример, показывающий ожидаемое поведение в 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);
}
}));
}
}