Вертикальная полоса прокрутки для переключателейJAVA

Программисты JAVA общаются здесь
Anonymous
Вертикальная полоса прокрутки для переключателей

Сообщение Anonymous »

Я новичок в Java-программировании.

Я пытаюсь создать вертикальный список переключателей с полосой прокрутки. Мой код не создает окно заданного размера, и полоса прокрутки на самом деле не появляется.

Код: Выделить всё

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;

public class RadioButtonScroller {
private List abcList = new ArrayList(Arrays.asList("Aa", "Bb", "Cc", "Dd", "Ee", "Ff", "Gg", "Hh", "Ii",
"Jj", "Kk", "Ll", "Mm", "Nn", "Oo", "Pp", "Qq", "Rr", "Ss", "Tt", "Uu", "Vv", "Ww", "Xx", "Yy", "Zz"));
private JRadioButton pickButton;
private JFrame jframe = new JFrame("Select one:");
private JScrollPane scrollPane;
private JPanel panel = new JPanel();
private Box vertBox;

public RadioButtonScroller() {
createUI();
}

public void setRadioButtons() {
ButtonGroup group = new ButtonGroup();

for (int i = 0; i < abcList.size(); i++) {
String theseLetters = abcList.get(i);
pickButton = new JRadioButton(theseLetters);

group.add(pickButton);
vertBox.add(pickButton);
}
}

private void createUI() {
//centers on screen
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
jframe.setLocationRelativeTo(null);
jframe.setLocation(dim.width / 3 - jframe.getSize().width / 3, dim.height / 4 - jframe.getSize().height / 4);

vertBox = Box.createVerticalBox();
jframe.setSize(300, 525);
vertBox.setSize(300, 525);
jframe.setVisible(true);

panel.setLayout(new FlowLayout());
jframe.add(panel);
scrollPane = new JScrollPane(vertBox);
scrollPane.setSize(300, 525);
scrollPane.getVerticalScrollBar();
panel.add(scrollPane);

jframe.pack();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setRadioButtons();
}

public static void main(String[] args) {
RadioButtonScroller radioButtonScroller = new RadioButtonScroller();
}
}
Раньше я успешно использовал JFrame с Vbox, но добавление JPanel и JScrollPane меня сбило с толку.

(Я не могу использовать JavaFX из-за некоторых проблем совместимости. Должно быть, в разработке.)

Большое спасибо.

Вернуться в «JAVA»