Я подал приложение Swing, которое довольно просто в функциональности. Однако код, из которого это состоит, стал довольно большим и очень грязным, по-моему. Все компоненты колебания и действия находятся в одном файле. Так, например, если я должен был подать ровную объемную заявку с большей функциональностью, код будет довольно трудно пройти.
Таким образом, мой вопрос состоит в том, как сделать хорошую структуру кода. Или если существует хорошая веб-страница, я могу читать об этом, и, если возможно некоторые примеры кода. Я проверил учебное руководство Sun о Swing, но они довольно упрощенные примеры они показали.
ОБНОВЛЕНИЕ: Я имею обдумывание некоторое время и проверяю на некоторые примеры. Я не знаю, получил ли я корректный шаблон MVC. Так или иначе моя идея состоит в том, чтобы разделить каждый JFrame в их собственный файл класса. Позже у меня есть один MainFrame, который является главным окном для приложения. От этого JFrame я создаю один экземпляр каждого JFrame, который я имею. И звоните, они структурируют от MainFrame с Действиями. Я не знаю, является ли это хорошей идеей. Однако это делает код значительным легче читать так или иначе.
Вот пример того, как я имел в виду
class Main implements ActionListener {
private JFrame frame = new JFrame();
private JButton button1 = new JButton();
private JPanel panel = new JPanel();
private FirstFrame frame1 = new FirstFrame();
private SecondFrame frame2 = new SecondFrame();
private ThirdFrame frame3 = new ThirdFrame();
public Main() {
button1.addActionListener(this);
}
public createGUI() {
frame.setTitle("Main");
frame.setSize(400,300);
panel.add(button);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
public static void main(String args[]) {
new Main().createGUI();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1)
{
frame1.enable();
}
}
}
Важно помнить, что программирование пользовательского интерфейса - это просто как и другие виды программирования. Не думайте, что это что-то особенное и что вы можете игнорировать разумные методы. К сожалению, большая часть учебного кода очень плохая, а код в производстве, по-видимому, имеет тенденцию быть намного хуже.
Ключевые моменты:
JPanel
s). JFrame
и JPanel
, так что не делайте этого. Использовать Шаблон проектирования Model-View-Controller. Он занимается отделением кода пользовательского интерфейса от бизнес-логики.
EDIT :
Поскольку операционная система ищет организованный код, а не гибкую конструкцию, я удалил из своего ответа часть NetBeans UI Designer.
.Организация кода пользовательского интерфейса любого значительного размера - проблема, о которой написано удивительно мало, учитывая, что каждое приложение имеет одну и ту же проблему. Есть несколько техник, которые могут помочь:
Основные приемы проектирования существуют уже достаточно давно, и их хорошо понимают, но применение приёмов в большем масштабе - это то, что кажется разработанным индивидуально для каждого приложения.
Один из подходов, который я видел эффективно применяемым, это разделение событий, слушателей, действий и т.д. на их собственные классы и либо организация их в пакеты по типам, либо использование согласованного соглашения об именовании между пакетами так, чтобы компонент и связанные с ним классы были легко идентифицируемы (XDialog, XDialogMouseListener, XDialogCancelAction и т.д.)
Другим подходом было бы посмотреть на некоторые большие приложения с открытым исходным кодом (Eclipse, Firefox, ...), и посмотреть, как они организуют свой GUI-код.
.Я стараюсь вытащить из компонентов Swing как можно больше функций, не связанных с графическим интерфейсом, насколько это возможно. Это означает, что у вас есть лишнее косвенное обращение. Однако:
Я не обязательно говорю о полной модели MVC (хотя это неплохая вещь). Это скорее проблема организации класса / пакета.