JFrame в настольном приложении Java - PullRequest
1 голос
/ 20 декабря 2009

Я разрабатываю настольное Java-приложение с графическим интерфейсом, реализованным через Swing . Я сделал JFrame и добавил три кнопки - Add, Edit, Delete.

Теперь я хочу, чтобы всякий раз, когда пользователь нажимал на любую кнопку, содержимое, относящееся к этой кнопке, появлялось помимо этих трех кнопок.

Так как это реализовать? Нужно ли мне добавить JPanel помимо этих трех кнопок, а затем добавить содержимое, относящееся к этой кнопке, к этой JPanel?

Пока что я взял JFrame и добавил на него 3 кнопки. Вот и все.

Для кнопки «Добавить» я хочу добавить несколько кнопок и текстовых полей для добавления информации в базу данных.

Для кнопки «Удалить» я хочу добавить несколько кнопок для поиска записей в базе данных на основе информации, введенной пользователем в текстовом поле, которое появляется, когда пользователь нажимает кнопку «Удалить».

Аналогичный тип содержимого для кнопки «Редактировать».

Ответы [ 4 ]

3 голосов
/ 20 декабря 2009

Так как это реализовать. Должен ли я добавить JPanel помимо этих трех кнопок, а затем добавить содержимое, относящееся к этой кнопке, к этому JPane

Это было бы хорошо. Когда вы нажимаете кнопку, вы можете вызвать JPanel.removeAll () , чтобы удалить все элементы управления, находящиеся в данный момент в элементе управления, а затем просто сделать макет снова, в зависимости от того, какую кнопку вы нажали.

Если у вас есть собственные элементы управления свингом, просто добавьте ваш собственный элемент управления JPanel, используя BorderLayout и поместив его в центр.

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

1 голос
/ 20 декабря 2009

Любой из Чада или Алекса будет в порядке. Вам, вероятно, понадобится вызвать комбинацию revalidate() и repaint() на панели, которую вы изменили, поскольку в прошлом я заметил, что Swing не всегда любил менять панели.

Кроме того, рассматривали ли вы возможность использования JTabbedPane вместо ручного кодирования взаимодействия с помощью кнопок добавления / редактирования / удаления?

0 голосов
/ 16 января 2010

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

0 голосов
/ 20 декабря 2009

Я не много занимался программированием на Java, но я думаю, что использование 2-3 различных JPanel и сделать видимым тот, который вам нужен в зависимости от нажатой кнопки, поможет.

Я не уверен, что это правильный подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...