Program nie maluje po maksymalizacji wysokości JFrame
Możesz zmienić rozmiar JFrame przeciągając myszą na kilka sposobów:
Możesz zmienić jego wysokość (górna / dolna krawędź)Możesz zmienić jego szerokość (lewa / prawa krawędź)Możesz zmienić rozmiar obu (w rogach)Możesz go zmaksymalizować, przeciągając całe okno do górnej krawędzi monitoraMożesz zwiększyć jego wysokość, przeciągając jego górną / dolną krawędź do górnej / dolnej krawędzi monitoraMój program jest przemalowywany w każdym z tych działań, z wyjątkiem liczby 5.
Dlaczego?
Czy to może być błąd w moim programie? To nie wygląda tak. Nie wiem, gdzie chciałbym odmalować prośbę w tym konkretnym przypadku ... Wygląda na to, że JFrame powinien wywołać przemalowanie na jego contentPane po każdej zmianie rozmiaru, prawda?
Pachnie jak błąd w samej Javie, w klasie JFrame.
SSCCE:
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
class Gui
{
Gui()
{
JFrame masterWindow = new JFrame("My very own SSCCE");
masterWindow.setSize(1100, 100);
masterWindow.setLocationRelativeTo(null);
masterWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
masterWindow.setVisible(true);
}
}
class Main
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
new Gui();
}
});
}
}
Chwyć górną krawędź ramki JFrame i przeciągnij ją do górnej krawędzi ekranu i zwolnij. Dłuższa część powinna być czarna. Jeśli go zmaksymalizujesz, wszystko będzie szare, jak powinno.
Nadal mówię o błędzie Java lub Windows.