Что влияет на активированный статус кнопки масштабирования на JFrame для Mac?

45
4

У меня есть Java-программа, которую я написал, которая изменяет, изменяется ли JFrame в зависимости от состояния приложения. В Windows это отлично работает, когда он изменен по размеру, кнопка максимизации включена, когда она не отключена. Тем не менее, на моем Mac, когда я изменяю resizable обратно к истине, кнопка масштабирования не включается, но окно становится изменяемым по размеру - отображается рендеринг размера.


К сожалению, я не смог воспроизвести это поведение в простом приложении. Только в моем сложном приложении это появляется. Поэтому мне интересно, чем изменяет состояние JFrame, что влияет на включение кнопки масштабирования?

спросил(а) 2010-07-30T22:46:00+04:00 9 лет, 4 месяца назад
1
Решение
47

Вот простой пример, показывающий ожидаемое поведение в 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);
}
}));
}
}

ответил(а) 2010-07-31T04:42:00+04:00 9 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема