У меня есть неплохие знания в таких средах J2EE, как Spring, Hibernate, и меня вдохновило разделение интересов.Я начинающий в разработке рабочего стола в Java.Вещи идут нечетко в разгаре.В VB дизайн формы будет сохранен как отдельный, а наша форма будет содержать только прослушиватели событий.Но когда я начинаю качаться, многие вещи загружаются в одном классе, что усложняет задачу.Я не могу найти, где я не прав.Подобная вещь продолжается, когда я начал для альтернатив, таких как SWT.
Пример SWT-кода, который я получил из интернета
import java.awt.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import edu.umd.cs.piccolox.swt.PSWTCanvas;
import edu.umd.cs.piccolox.swt.PSWTPath;
import edu.umd.cs.piccolox.swt.PSWTText;
public final class SWTBasicExample {
/**
* Create and open a new shell on the specified display.
*
* @param display display
* @return a new shell on the specified display
*/
public static Shell open(final Display display) {
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
// create a new SWT canvas
final PSWTCanvas canvas = new PSWTCanvas(shell, 0);
// create some SWT nodes
// and add them as child nodes to the canvas' camera's first layer
PSWTPath rect = PSWTPath.createRectangle(25, 25, 50, 50);
rect.setPaint(Color.RED);
canvas.getLayer().addChild(rect);
rect = PSWTPath.createRectangle(300, 25, 100, 50);
rect.setPaint(Color.BLUE);
canvas.getLayer().addChild(rect);
PSWTPath circle = PSWTPath.createEllipse(100, 200, 50, 50);
circle.setPaint(Color.GREEN);
canvas.getLayer().addChild(circle);
circle = PSWTPath.createEllipse(400, 400, 75, 150);
circle.setPaint(Color.YELLOW);
canvas.getLayer().addChild(circle);
PSWTText text = new PSWTText("Hello World\nMultiline");
text.translate(350, 150);
text.setPenColor(Color.GRAY);
text.setBackgroundColor(Color.BLACK);
canvas.getLayer().addChild(text);
text = new PSWTText("Goodbye World");
text.translate(50, 400);
text.setPenColor(Color.MAGENTA);
canvas.getLayer().addChild(text);
shell.open();
return shell;
}
public static void main(final String[] args) {
final Display display = new Display();
final Shell shell = open(display);
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
Здесь все портится, поэтому наша бизнес-логика и дизайн находятся в одном классе.Я изучал, что метод может иметь до 10 строк, чтобы сделать его менее сложным и многократно используемым.Это применимо только к логике, а не к разработке на рабочем столе.
Между тем, я слышал, что Swing - это инфраструктура MVC.Итак, я хочу аккуратное разделение логики, дизайна и контроля.Я хочу, чтобы в процессе разработки Swing и SWT использовались хорошие инженерные методы для облегчения разработки десктопов в Java.Поскольку я использую затмение SWT будет для меня предпочтительнее.
Спасибо,