2009-12-14 3 views
1

У меня есть хорошая текстовая Java-программа, с которой я бы хотел добавить графический интерфейс.Сочетание графики с пользовательским интерфейсом в Java

Я занимался NetBeans и не должен испытывать слишком много проблем, получая компоненты на месте.

Однако программе необходимо динамически обновлять изображения в окне интерфейса, и я не уверен, что лучший способ сделать это.

Есть ли распространенные практики для перемещения изображений (PNG, JPEG ...) в интерфейсе? Есть ли хорошие ресурсы для получения очень простой информации об этом?

Thanks

ответ

1

Дополнительная информация может быть полезна.

Если вы хотите переустановить изображения, ознакомьтесь с классом Swing LayoutManager. Вы можете поместить изображение в ImageIcon, ImageIcon в JLabel, а менеджер компоновки может позиционировать и переставить JLabels на JPanel.

Если вы хотите, чтобы изображения были перетаскиваемыми, соглашение должно поместить JLabel в другой компонент контейнера (поскольку метки обычно не поддерживают события мыши или табуляции).

Вы можете посмотреть эти классы в Swing tutorial.

Есть также множество дополнительных рамок для создания Свинг работать лучше для вас - some listed here

Кроме того, JavaFX также обеспечивает быстрый способ для ведения Java ГПИ, который может быть быстрее и проще писать (если вы не» t ум, изучая новый язык сценариев). Например, это облегчает добавление анимации (изображения, намазанные на место).

1

Java имеет красивый и мощный API для рисования графики и изображений. Посмотрите на 2D Graphics tutorial из набора учебных пособий Java от Sun.

Если вы хотите сделать анимацию, вы найдете timing framework полезной.

Хорошая книга о создании великолепных, анимированных графических интерфейсов в Java - Filthy Rich Clients от Chet Haase и Romain Guy.

0

Вы имеете в виду, что у вас есть изображения, летающие поверх кнопок и прочее? Или только в определенном регионе?

Если он находится в определенном регионе, и вам не нужно перемещать кнопки и другие элементы графического интерфейса пользователя, тогда самый простой способ сделать это - создать холст (или компонент качания и перегрузить функцию рисования) а затем использовать Graphics2D API для рисования. Основным планом будет:

public class MyClass extends JComponent{ 

    Image myPicture; 
    int x, y; //location to draw the picture. 
    ... 
    public void paint(Graphics g) { 
      Graphics2D gx = (Graphics2D)g; //cast to graphics 2D 
      g.drawImage(myPicture,x,y,this); 
    } 
    ... 
} 

Затем просто измените значения x и y, чтобы переместить изображение.

+0

Графика не будет перекрывать ни один из элементов графического интерфейса пользователя. Я просто немного перегружен всей терминологией, и я не уверен, что лучший способ сделать это ... Я просто хочу, чтобы это было просто. У меня есть код netbeans, но в коде, который он сгенерировал, нет метода paint(). Должен ли я просто добавить метод самостоятельно и обработать обновление графики с его помощью? – Allen

+0

Да, просто добавьте функцию краски.Убедитесь, что подпись функции - «public void paint (Graphics g)», и ваша функция должна работать. –

Смежные вопросы