2011-02-05 3 views
0

Примечание: Это для курса SWING, который я принимаю.вопрос дизайна для java SWING app

У меня есть задание сделать простой графический пакет (рисовать круги, квадраты и т. Д.).

Я имел в виду иметь несколько диалоговых окон для ввода параметров формы, а именно:

точка имеет х, у Круг имеет х, у, радиус Прямоугольник имеет х, у, ширина, высота и т.д.

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

Например, rectangleDialog будет вызывать супер конструктор с дополнительными параметрами, необходимыми:

public abstract class XYDialog extends JFrame { 
    public XYDialog(PARAMETERS ... params) { 
     // build the dialog by iterating through PARAMETERS 
    } 
} 


public class RectangleDialog extends XYDialog { 
    public RectangleDialog() { 
    super(PARAMETERS.WIDTH, PARAMETERS.HEIGHT); 
    } 
} 

то супер класс отвечает за построение GUI

ли это, кажется, как разумный подход? Имеет ли это смысл?

Thanks

+0

Для текстовых сообщений существует совершенно другой класс Dialog Swing http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html, поэтому вы не должны использовать эти имена. Дайте понять, действительно ли вы хотите использовать Swing Dialog или хотите его нарисовать. –

+1

В качестве бонусного совета я бы использовал 'super (PARAMETERS.WIDTH | PARAMETERS.HEIGHT)' вместо переменного количества параметров. –

ответ

1

Да, я думаю, что это хорошее решение. Но, как было сказано ранее, пересматривайте имена своих классов. Если вы расширите JFrame, назовите его SomethingFrame. Если PARAMETERS - нормальный класс, он не должен находиться в капиталах.

Я бы также предложил расширить JPanel вместо JFrame, и пусть один из этих классов определит, помещать ли их в JFrame или JDialog. JFrame создает совершенно новое окно, и обычно у вас есть только одно главное окно для вашего приложения, тогда как диалоги и панели создаются «на лету».

+0

«Я также предлагаю расширить JPanel вместо JFrame, и пусть один из этих классов определит, помещать ли их в JFrame или JDialog.» .. или JOptionPane, или JToolBar, или ограничение WEST в BorderLayout. , –

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