Графический рендеринг в строке заголовка

Графика продолжает рендеринг в строке заголовка. Я использую буферное изображение, инкапсулированное в jlabel, и использую полученные графические объекты для рисования прямоугольников в моем коде. Это важная часть конструктора classа jframe:

super(); BufferedImage image=new BufferedImage(680,581,BufferedImage.TYPE_INT_ARGB); m_graphicsObject =image.getGraphics(); JLabel label=new JLabel(new ImageIcon(image)); // buttons, mouse events and other controls use listeners to handle actions // these listener are classes btn1 = new JButton("Go!"); //btn1.setPreferredSize(new Dimension(100, 30)); btn1.addActionListener(new button_go_Click()); //listener 1 btn2 = new JButton("Clear!"); //btn2.setPreferredSize(new Dimension(100, 30)); btn2.addActionListener(new button_clear_Click()); //listener 2 //always add created buttons/controls to form JPanel panel=new JPanel(new GridLayout(20,2)); panel.add(btn1); panel.add(btn2); Container pane = this.getContentPane(); pane.add(label); pane.add(panel, BorderLayout.EAST); this.setSize(680,581); this.setVisible(true); 

Проблема в том, что вы не принимаете во внимание рамку frameworks (и, возможно, панель меню) при настройке размера frameworks …

Вместо использования this.setSize(680,581) который приведет к отображению изображения внутри границ фреймов (и за его пределами в невидимое пространство), вы должны просто вызвать JFrame#pack и позволить кадру решить, как лучше всего его настроить ( основанный на предпочтительном размере его содержимого)

введите описание изображения здесьвведите описание изображения здесь

Левый, абсолютный размер, правильный предпочтительный размер

 public class SimpleImageLabel { public static void main(String[] args) { new SimpleImageLabel(); } public SimpleImageLabel() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException ex) { } catch (InstantiationException ex) { } catch (IllegalAccessException ex) { } catch (UnsupportedLookAndFeelException ex) { } JLabel imageLabel = new JLabel(); try { imageLabel.setIcon(new ImageIcon(ImageIO.read(new File("/path/to/image")))); } catch (Exception e) { } JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(imageLabel); frame.pack(); // <-- The better way // frame.setSize(imageLabel.getPreferredSize()); // <-- The not better way frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } } 

Как я уже упоминал ранее, вы должны установить положение своего JLabel используя

 aJLabel.setLocation(Point p) 

ИЛИ

 aJLabel.setLocation(int x, int y) 

если изображение слишком велико, вам необходимо изменить его размер, чтобы получить хорошее место (:

С наилучшими пожеланиями.

  • Просмотрите файл изображения и покажите его с помощью Java Swing
  • Как мне получить AppContext для выпуска компонентов AWT, чтобы они могли собирать мусор?
  • Вращение экземпляров BufferedImage
  • CubicCurve2D, соединяющий два экземпляра JInternalFrame
  • Какие методы компонента Swing являются streamобезопасными?
  • Автогенерированный код GroupLayout в NetBeans
  • Создание пользовательского JButton из изображений, содержащих прозрачные пиксели
  • Коробка масштабирования для области вокруг местоположения мыши на экране
  • Fit / Scale JComponent для печати страницы
  • Рисование прямоугольника, который не исчезнет в следующей краске
  • Как получить разрешение экрана в java?
  • Interesting Posts

    Как запустить программу Python в Windows?

    Windows 8 Настройка изображения на экране входа в систему

    Надежный и быстрый FFT на Java

    Имена переменных Java Unicode

    Спящий критерий: соединение таблицы без сопоставленной ассоциации

    Как позвонить в список контактов Android И выбрать один номер телефона со своего экрана сведений?

    Извлечение эскиза для любого файла в Windows

    Преобразование даты / времени для данного часового пояса – java

    Лучшая практика для запуска приложений Spark через веб-приложение?

    Windows 8 не будет загружаться после восстановления загрузки

    После установки Windows Phone 8 SDK Connectify не работает

    Выполнение static_assert, что тип шаблона является другим шаблоном

    Как определить потребление ЦП и памяти изнутри процесса?

    Удалить ассоциацию файлов Windows с использованием REG-файла

    Где я могу найти окончательный Selenium WebDriver для Матрицы совместимости Firefox?

    Давайте будем гением компьютера.