Я попытался создать класс, который расширяет JComponents, но когда я добавляю его в ящик, я вижу только пустое окно. Вы можете мне помочь? Что я ожидаю получить, это окно с 3 горизонтальными полями, содержащими метку и кнопку рядом с ней.Java Swing - как я рисую этот класс, который расширяет JComponent
public class MyWindowComp{
public MyWindowComp(){
JFrame frame = new JFrame("myFrame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel wp = new JPanel(new BorderLayout());
Box vBox = new Box(BoxLayout.Y_AXIS);
MyComponent one = new MyComponent();
MyComponent two = new MyComponent();
MyComponent three = new MyComponent();
vBox.add(one);
vBox.add(two);
vBox.add(three);
wp.add(vBox);
frame.add(wp);
frame.setVisible(true);
}}
public class MyComponent extends JComponent {
private Box box;
private JButton b;
private JLabel l;
public MyComponent(){
this.box = new Box(BoxLayout.X_AXIS);
this.l = new JLabel ("label");
this.l.setVisible(true);
this.b = new JButton("button");
this.b.setVisible(true);
box.add(l);
box.add(b);
}}
Получено:
Ожидаемое:
Ваш вопрос, похоже, не связан с реальной проблемой, которая, похоже, сводится к «Как получить компоненты для отображения?». См. [Что такое проблема XY?] (Http://meta.stackexchange.com/q/66377) –
Образованное предположение: вы не переопределили какие-либо методы 'paint *()', поэтому ваш компонент рисует ... ничего. Если вы просто хотите сгруппировать некоторые другие компоненты, просто используйте «JPanel» –
, я думаю, вы попали в гвоздь на голове. Я ищу способ рисовать myComponent. Я ошибочно предположил, что это метод setVisible ... – Koop4