Этот Java-код использует Swing. Я пытаюсь создать форму, чтобы Swing basic был покрыт в ней. Он имеет ярлык, кнопку, текстовое поле, но переключатель не работает. Пожалуйста, расскажите мне об ошибках. Это потому, что я не добавляю переключатели в панель?Радиоустройства исчезают
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Swingtrial extends JFrame {
final String[] sList
= {
"JANUARY",
"FEBRUARY",
"MARCH",
"APRIL",
"MAY",
"JUNE",
"JULY",
"AUGUST",
"SEPTEMBER",
"OCTOBER",
"NOVEMBER",
"DECEMBER",};
public Swingtrial() {
callGUI();
}
public void callGUI() {
int s[];
JPanel panel = new JPanel();
getContentPane().add(panel);
setTitle("TRIAL FORM");
panel.setLayout(null);
panel.setSize(200, 200);
JLabel lab = new JLabel("Name");
lab.setBounds(200, 60, 100, 25);
panel.add(lab);
JTextField name = new JTextField("first name");
name.setBounds(275, 60, 100, 25);
panel.add(name);
JTextField name1 = new JTextField("middle name");
name1.setBounds(380, 60, 100, 25);
panel.add(name1);
JTextField name2 = new JTextField("last name");
name2.setBounds(500, 60, 150, 25);
panel.add(name2);
JLabel age = new JLabel("Date of Birth");
age.setBounds(200, 100, 150, 25);
panel.add(age);
JComboBox date = new JComboBox();
date.setBounds(275, 100, 50, 25);
date.setBackground(Color.LIGHT_GRAY);
panel.add(date);
for (int i = 1; i <= 31; i++) {
extracted(date, i);
}
JComboBox drop = new JComboBox();
drop.setBounds(350, 100, 85, 25);
drop.setBackground(Color.LIGHT_GRAY);
panel.add(drop);
for (int iCtr = 0; iCtr < sList.length; iCtr++) {
drop.addItem(sList[iCtr]);
}
JComboBox yr = new JComboBox();
yr.setBounds(455, 100, 80, 25);
yr.setBackground(Color.LIGHT_GRAY);
panel.add(yr);
for (int i = 1900; i <= 2014; i++) {
extracted(yr, i); // not understood?????? :(
}
JLabel add = new JLabel("address");
add.setBounds(200, 150, 100, 25);
panel.add(add);
JTextField address = new JTextField("Adress");
address.setBounds(280, 150, 200, 40);
panel.add(address);
JRadioButton male = new JRadioButton("male");
JRadioButton female = new JRadioButton("Female");
ButtonGroup bG = new ButtonGroup();
add(male);
bG.add(female);
this.setSize(100, 200);
this.setLayout(new FlowLayout());
this.add(male);
this.add(female);
male.setSelected(true);
this.setVisible(true);
JButton but = new JButton("ommm");
but.setBounds(50, 60, 80, 30);
panel.add(but);
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
}
private void extracted(JComboBox month, int i) {
month.addItem(i);
}
public static void main(String args[]) {
Swingtrial mainFrame = new Swingtrial();
mainFrame.setVisible(true);
}
}
Просто потому, что у вас есть «Запрос о Java» не означает, что тег [tag: jquery] ** ** имеет какое-либо отношение к нему. Пожалуйста, внимательно прочитайте всплывающие подсказки, прежде чем применять их к вопросу. –
Java GUI, возможно, придется работать на нескольких платформах, на разных разрешениях экрана и с использованием разных PLAF. Таким образом, они не способствуют точному размещению компонентов. Чтобы организовать компоненты для надежного графического интерфейса, вместо этого используйте менеджеров компоновки или [их комбинаций] (http://stackoverflow.com/a/5630271/418556), а также макеты и границы для [пробела] (http: //stackoverflow.com/q/17874717/418556). –
BTW - это много кода, чтобы просто получить два флажка на экране. ;) Я понимаю, вы, должно быть, хотите расширить GUI позже с помощью других элементов управления. Но я хотел бы подчеркнуть, что лучше сделать это с помощью макетов. Готовы ли вы предоставить ASCII-искусство (или изображение с простым рисунком) графического интерфейса пользователя, поскольку оно должно появляться в наименьшем размере и (если изменение размера) с дополнительной шириной/высотой, чтобы мы могли показать вам, как это сделать? Это должно быть по отдельному вопросу, так как это задано и ответили, а макет - это отдельный вопрос. –