Я установил сервер, который запускает и принимает подключения от моего удаленного клиента, и теперь я работаю над своим графическим интерфейсом.GUID удаленного клиента Java
Прежде всего, моя цель состоит в том, чтобы создать симпатичного клиента, который будет иметь экран входа в систему (login/pw), а затем красивый макет с моими параметрами/возможно, окно чата после входа пользователя в систему.
Я искал много онлайн и использовал этот сайт, чтобы настроить свой сервер и заставить все работать, но у меня есть небольшая проблема с графикой/теорией и надеюсь, что кто-то здесь может мне немного помочь.
На данный момент я создал класс ClientGUI, который вызывается из моего основного класса, и это создает экран размера 420x240. После размещения моих логов/паролей JTextField здесь, правильно ли настроить другой графический интерфейс, как я изложил ниже? Я не уверен, должен ли я помещать их под один класс или как я продвигаюсь от одного графического интерфейса к другому. Я думаю, что я должен перекрасить и изменить размер экрана по мере необходимости, но я не уверен, как все это сделать. Краткое описание было бы полезно (вам не нужно указывать точный код).
public class ClientGUI extends JFrame {
public ClientGUI() {
setSize(420,240);
setVisible(true);
setTitle("Title");
setResizable(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
}
public loginGUI() {
//code for my login/pw boxes, images, listener for entering information
}
public afterlogginginGUI() {
}
paint() {
//not too sure about how this should be setup either. Should I do all my textfield
//and image work in paint()?
}
}
Я никогда не делал ничего подобного, так что у меня есть чувство, что я не устанавливать это вверх идеальным образом.
Альтернатива заключается в том, чтобы иметь отдельный класс java, расширяющий JFrame для каждого «экрана», который я хочу, но если я сделаю это так, сделаю ли я это так?
В моем главном классе RemoteClient:
main {
ClientGUI();
//display whatever
LoginGUI();
//listen for login info
if (loginIsValid) {
afterlogginginGUI();
}
}
У меня есть общее представление о том, как я буду проверять регистрационную информацию (я установил свой сервер для клиента writin г/чтение), поэтому я знаю, как я буду запускать определенные события. Когда вы говорите, чтобы отделить функциональность ядра от отдельных классов, вы имеете в виду разделение всего (например, 1 класс для входа в систему, 1 класс для всех, что приходит после этого, и т. Д.) Или разделять только функции (например, проверку, но не макет)? Я предполагаю, что вы имеете в виду разделить все. Я прочитаю эти ссылки. – Rahul
* «Я предполагаю, что вы имеете в виду раздельное все» * - Да, вообще, это лучший подход. Это предпосылка парадигмы [Model-view-controller] (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller). В принципе, ваш пользовательский интерфейс (просмотр) будет собирать данные от пользователя, когда нажмите кнопку «Войти», кнопка «ActionListener» кнопки попросит контроллер выполнить проверку. Это означает, что вы можете изменить способ работы валидации без изменения вида в качестве базового примера. Если вам интересно, модель может содержать учетные данные – MadProgrammer
Я разрабатываю свой графический интерфейс для своего экрана входа прямо сейчас с помощью JFrame. Есть ли конкретная причина, почему вы сказали использовать JPanel, а не JFrame? Кроме того, при создании второго экрана я мог бы просто создать другой JFrame и создать его отдельно в своем собственном классе, а затем выйти из окна входа в систему и создать экземпляр нового класса? Я знаю, что вы предложили использовать CardLayout, и я могу это сделать, но я посмотрел пример онлайн, и мне интересно, если это лучший способ перехода к следующему представлению. – Rahul