2012-03-08 3 views
5

Я хотел бы иметь отдельное графическое окно (вместе с отдельной декартовой координатной плоскостью) внутри большего окна, используя java.awt/javax.swing, я нарисовал picture, чтобы показать вам, что я имею в виду ,Окно чертежа в JFrame

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

PS. Я ничего не пробовал, потому что не знаю, что попробовать.

+2

Вы действительно должны сначала пойти в учебники Swing и начать чтение. Читайте на JFrames, JPanels и на рисунке с Swing. Это должно дать вам несколько хороших идей о том, с чего начать. Вы можете найти учебники как часть обучающих программ Java: [The Really Big Index] (http://docs.oracle.com/javase/tutorial/reallybigindex.html). Голосование, чтобы закрыть этот вопрос как слишком широкий и неоднозначный для StackOverflow. –

+0

Кто-то упоминал использование внутренних фреймов - плохая идея. Вместо этого просто используйте JPanel для рисования, переопределив его метод paintComponent и разместив его в JPanel с помощью соответствующих менеджеров компоновки, вот и все. Опять же, учебники объяснят вам все это. –

+0

Отличное описание (диаграмма) BTW. Изображение рисует тысячу слов, а это изображение <11Kb. :) –

ответ

4

Я рекомендую загрузить NetBeans, чтобы начать с, так как это самый простой IDE для разработки пользовательского интерфейса я знаю.

  1. Начните с создания основной рамы вашего приложения.
  2. Добавьте все необходимые кнопки и расположите их так, как на картинке на главном кадре.
  3. Добавьте JPanel к вашему фрейму и назовите его чем-то вроде drawingCanvasPanel. Эта панель будет областью рисования. Не забудьте переопределить метод Panel painComponent, в котором вы рисуете свои собственные рисунки и фигуры с помощью панели Graphics.
+3

+1 для NetBeans. @Johan: Не поддавайтесь соблазну редактора GUI, пока не поймете [макеты] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). – trashgod

+0

Звучит достаточно просто, я немного погуляю, чтобы узнать больше. @trashgod: Да, это в значительной степени то, что я собираюсь делать в любом случае (используя макеты). В совете Netbeans: Спасибо, но я останусь с Emacs, это то, к чему я привык, и он работает достаточно хорошо. – Johan

+0

@ Johan Рад, что это помогло :) Удачи с Emacs, нет лучшего способа понять макеты, кроме игры с сырым кодом макета (вместо IDE, выполняющего всю работу за вас :)) – GETah

-1

Вы можете использовать внутренние фреймы, для того, как использовать его, увидеть official tutorial

+0

Нет, это определенно не ситуация, когда необходимо использовать внутренние фреймы. Вложенные JPanels да, но нет причин создавать внутренние фреймы. –

+0

Он хочет окно внутри другого окна, насколько мне известно, внутренний кадр делает это. –

+0

Извините, если вы не поняли, я не искал окна внутри окна (с закрытыми кнопками и т. Д. Я имею в виду), другие ребята, похоже, поняли, что я имел в виду. Спасибо, в любом случае! – Johan

4

Я бы переопределить paintComponent() в JPanel на левой стороне, как обсуждалось here. A JPanel от JButton в BoxLayout может идти справа, как показано на рисунке here. См. Также соответствующий пример, LinePanel.

+0

Также рассмотрим ['JFreeChart' ] (http://stackoverflow.com/tags/jfreechart/info). – trashgod

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