Java: различное поведение JFrame в разных операционных системахJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java: различное поведение JFrame в разных операционных системах

Сообщение Anonymous »


Я программирую JFrame на Java с помощью eclipse, который должен иметь тот же размер, что и экран, на котором он отображается.

Сам кадр разделен на две части — одну слева (4/5 размера экрана), предназначенную для отображения изображения, уменьшенного в соответствии с этой частью кадра, и одну справа (1 /5 размера экрана), который должен отображать текст помимо картинки. Мой код работал и работал безупречно уже много лет. До недавнего времени.

Теперь, после установки последней версии eclipse, она внезапно совершенно сломалась и ведет себя по-разному в разных операционных системах. Хотя он все еще работает как задумано на моем компьютере с Windows 7 на моем компьютере с Windows 11, Jframe внезапно больше не имеет правильного размера, хотя я ничего не менял в коде. То же самое касается и Linux. Еще хуже - теперь вдруг картинки больше не уменьшаются. Вместо того, чтобы видеть в рамке полную картинку с меньшим разрешением, я вижу только части изображения, отображаемые в рамке, в исходном разрешении картинки.

Я уже несколько дней ломаю голову над этим необъяснимым поведением, и мои знания серьезно подошли к концу. Что, черт возьми, вдруг не так?!? Можете ли вы помочь мне исправить это, чтобы все снова работало как задумано?

вот код:
публичный класс ScreenManager { защищенный статический размер screenSize = новый размер(); защищенный статический DisplayImage comp = новый DisplayImage(); ошибка частного статического файла = новый файл("error.jpg"); public static void buildFrame() { screenSize.setSize(GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getDisplayMode().getWidth(), GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getDisplayMode().getHeight()); Рамка JFrame = TextDisplay.displayText(comp, screenSize); ЗагрузитьДисплей(""); //Введите здесь путь к файлу } protected static void loadDisplay(File imageFile) выдает IOException { Изображение изображения = ноль; если (imageFile.exists()) { if(ImageIO.read(imageFile)!= null) { изображение = DisplayImage.displayImage(imageFile, screenSize); } еще { изображение = DisplayImage.displayImage(ошибка, размер экрана); } } еще { изображение = DisplayImage.displayImage(ошибка, размер экрана); } comp.setImage(изображение); } } публичный класс DisplayImage расширяет JComponent { частный статический окончательный длинный сериалVersionUID = 2613775805584208452L; личное статическое изображение; изображение; public static Image displayImage(File f, Dimension screenSize) выдает IOException { BufferedImage img = ImageIO.read(f); Изображение затемнено; двойная ширина = screenSize.getWidth()*0,75; двойной z1 = (img.getWidth()/ширина); двойной z2 = (img.getHeight()/screenSize.getHeight()); if (img.getHeight()/z1
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»