Я проектирую Jframe, используя netbeans. У меня мало вопросов.
Может ли кто-нибудь предложить мне, можем ли мы их достичь с помощью некоторых примеров.
Пробовал это, после некоторых полезных предложений
private void englishRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JLabel userlabel;
if (englishRadioButton.isSelected())
{
userlabel = new JLabel("Inches");
userlabel.setBounds(311, 59, 64, 36);
//userlabel.setLocation(307,55);
//userlabel.setSize(70,40);
userlabel.setForeground(Color.green);
userlabel.setText("Inches");
userlabel.setVisible(true);
System.out.println(englishRadioButton.getBounds());
inchesTextField.setVisible(true);
}
}
Текстовое поле отображается только при нажатии на английский переключатель, в то же время мне нужно получить ярлык, но он не отображается с указанным выше кодом. Могу ли я узнать, где я ошибаюсь?
См. Прилагаемые скриншоты
Когда нажата английская кнопка, мне нужна метка под вторым текстовым полем в дюймах, я отключу текстовое поле, когда отображается метрика. Я могу достичь более позднего, но не первого
Благодарю!!
setEnabled(...)
и метод setVisible(...)
любой из которых можно вызвать в любой момент во время прогона программы. Первый помогает вам активировать/деактивировать компоненты, а последний помогает сделать их видимыми/невидимыми. Если вы хотите поменять полные "взгляды", используйте CardLayout.Что касается:
Может ли кто-нибудь предложить мне, можем ли мы их достичь с помощью некоторых примеров.
Пожалуйста, сначала, поскольку я твердо верю, что бремя усилий здесь должно быть вашим, вопросником, поскольку вы тот, кто задает вопросы, и тот, кто больше всего учится по кодированию в максимально возможной степени. Давайте посмотрим ваши попытки, и мы сможем помочь вам с ними. В противном случае лучшие примеры можно найти в учебниках Swing.
Для ссылок, пожалуйста, смотрите здесь: Swing Tag Info.
редактировать
Ты спрашиваешь:
Я попробовал вышеуказанный код, условно отключив текстовое поле, хорошо работает, но получение метки не работает. Можете ли вы предложить это?
Я не вижу, чтобы вы добавляли свой JLabel к любому компоненту. Если вы собираетесь создать компонент в событии, вы должны добавить его к компоненту, чья иерархия предков в конечном итоге достигает видимого компонента верхнего уровня, такого как JFrame. Затем, добавив компонент в контейнер (скажем, JFrame), вы должны вызвать revalidate()
в контейнере, чтобы его менеджеры макета повторно разметали его компоненты, а затем repaint()
чтобы перерисовать любые "грязные" пиксели.
Я снова повторю, что вам намного лучше не использовать нулевой макет и абсолютное позиционирование, а скорее использовать менеджеры макетов и относительное позиционирование. Если вам нужен ярлык с видимым текстом и без него, лучше всего добавить пустую JLabel в GUI для создания GUI и просто установить его текст, когда это необходимо, если метка расположена где-то, что позволяет его текст сжиматься и расширяться,
Кроме того, что касается вашей текущей проблемы, вы можете показать картину того, что вы пытаетесь достичь, и то, что вы получаете. Или если вы не можете опубликовать изображение здесь, разместите ссылку на изображение или изображения, которые вы создали, а затем опубликуем их для вас.