powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое добавление компонентов
16 сообщений из 16, страница 1 из 1
Динамическое добавление компонентов
    #38401839
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно как можно это реализовать? Мне нужно динамически добавлять свои компоненты в список и что бы они были юзабильными . Вставляю в JList и определяю рендерер но кнопки
да и сама вся компонента не реагирует на события.
Вот компонент который нужно добавлять динамически (тест драйв компонента) http://us.ua/1226093/

Буду очень благодарен за помощь
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38401851
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JList имеет только Renderer. Renderer занимается отрисовкой и не реагирует на события ну вообще никак.
Почему бы не взять какой-нибудь BoxLayout?
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38401894
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczJList имеет только Renderer. Renderer занимается отрисовкой и не реагирует на события ну вообще никак.
Почему бы не взять какой-нибудь BoxLayout?
Вот мне тоже интересно можно ли ? Просто я пытался сунуть панельку с GridLayout в ScrollPane и не чего не получилось.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38401902
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greenpo1sonВот мне тоже интересно можно ли ?

Что можно? Динамически добавлять в контейнер? Можно.

greenpo1sonне чего не получилось.
Очень конкретная проблема. Даже ни чего и ни посоветовать.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402020
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Ещё хотел спросить можно ли таким способом отображать отсортированные элементы ?
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402104
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
greenpo1son,

ScrollPane не получается повесить на панель... выдает ошибку is not attached to a horizontal group.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402155
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greenpo1sonЕщё хотел спросить можно ли таким способом отображать отсортированные элементы ?
Можно.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402157
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greenpo1sonScrollPane не получается повесить на панель... выдает ошибку is not attached to a horizontal group.
Возьмите либо простой BoxLayout, либо MigLayout. Не пользуйтесь всякой фигней типа Grid и GridBag.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402285
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczgreenpo1sonScrollPane не получается повесить на панель... выдает ошибку is not attached to a horizontal group.
Возьмите либо простой BoxLayout, либо MigLayout. Не пользуйтесь всякой фигней типа Grid и GridBag.
Использовал BoxLayout не в какую не хочет ставить JScrollPane...
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402558
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greenpo1sonИспользовал BoxLayout не в какую не хочет ставить JScrollPane...
Доктор у меня "это". Какой код? Какая ошибка? Что за "хочет"\"не хочет"?
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402717
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402872
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При попытке добавить Box или JPanel в JScrollPane выдает исключение :
javax.swing.Box[,0,0,0x0,invalid,layout=javax.swing.BoxLayout,alignmentX=0.0 ,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,pr eferredSize=] is not attached to a horizontal group

Вот часть кода где происходит ошибка (половину нагенерил NetBeans) :
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 182, Short.MAX_VALUE))
//Здесь ошибка
.addComponent(new JScrollPane(box), javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402882
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greenpo1sonПри попытке добавить Box или JPanel в JScrollPane выдает исключение :
javax.swing.Box[,0,0,0x0,invalid,layout=javax.swing.BoxLayout,alignmentX=0.0 ,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,pr eferredSize=] is not attached to a horizontal group

Это заблуждение. Ошибка возникает при добавлении JScrollPane в GroupLayout.
Не используйте NetBeans WYSIWYG пока вы не понимаете Swing. WYSIWYG это инструмент, который помогает кодить. Но он никак не отменяет надобности в понимании этого кода. Или читайте доку по GroupLayout, который вы используете. Или пользуйтесь более простыми и понятными LayoutManager-ами.

Ошибка возникает из-за того что вы добавляете JScrollPane не в группу. У вас строкой выше стоит две закрывающие скобки. Вторая закрывает группу. Хоть бы код отформатировали что ли.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402931
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczgreenpo1sonПри попытке добавить Box или JPanel в JScrollPane выдает исключение :
javax.swing.Box[,0,0,0x0,invalid,layout=javax.swing.BoxLayout,alignmentX=0.0 ,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,pr eferredSize=] is not attached to a horizontal group

Это заблуждение. Ошибка возникает при добавлении JScrollPane в GroupLayout.
Не используйте NetBeans WYSIWYG пока вы не понимаете Swing. WYSIWYG это инструмент, который помогает кодить. Но он никак не отменяет надобности в понимании этого кода. Или читайте доку по GroupLayout, который вы используете. Или пользуйтесь более простыми и понятными LayoutManager-ами.

Ошибка возникает из-за того что вы добавляете JScrollPane не в группу. У вас строкой выше стоит две закрывающие скобки. Вторая закрывает группу. Хоть бы код отформатировали что ли.
Код форматирован незнаю почему так он тут отобразился.
Насчет SWING'a вы правы знаю тока GridBagLoyaout но как-то легче было накидать все в NetBeans так как приложение не маленькое. Так в чем именно трабла ? Стоит из-за нее перечитывать всю доку по GoupLayout? Честно SWING'ом очень редко пользуюсь и поэтому не ту желания перечитывать всю доку.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38402943
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczgreenpo1sonПри попытке добавить Box или JPanel в JScrollPane выдает исключение :
javax.swing.Box[,0,0,0x0,invalid,layout=javax.swing.BoxLayout,alignmentX=0.0 ,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,pr eferredSize=] is not attached to a horizontal group

Это заблуждение. Ошибка возникает при добавлении JScrollPane в GroupLayout.
Не используйте NetBeans WYSIWYG пока вы не понимаете Swing. WYSIWYG это инструмент, который помогает кодить. Но он никак не отменяет надобности в понимании этого кода. Или читайте доку по GroupLayout, который вы используете. Или пользуйтесь более простыми и понятными LayoutManager-ами.

Ошибка возникает из-за того что вы добавляете JScrollPane не в группу. У вас строкой выше стоит две закрывающие скобки. Вторая закрывает группу. Хоть бы код отформатировали что ли.
Интересно то что если я уберу JScrollPane то все работает.
...
Рейтинг: 0 / 0
Динамическое добавление компонентов
    #38403055
greenpo1son
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема решена!!! Сначала нужно в NetBeanse закинуть JScrollPane , а на него уже потом закидывать панельку или Box;
Вот пример который динамически добавляет кнопки в панель и удаляет нажатием кнопок "ADD" и "DELETE".

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
package testonlineframe;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author CareMaaaN
 */
public class BoxTest extends javax.swing.JFrame {

	public static int count = 1;
    /**
     * Creates new form BoxTest
     */
    public BoxTest() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    
 
    
    
private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        box1 = Box.createVerticalBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("ADD");

        jButton2.setText("REMOVE");
        
        
        jButton1.setText("ADD");
        jButton1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) 
			{
				box1.add(new JButton("Test " + count++));
				revalidate();
			}
		}); 

        jButton2.setText("DELETE");
        jButton2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) 
			{
				
				Component[] mas = box1.getComponents();
				for(int i = 0; i < mas.length; i++)
				{
					if(mas[i] instanceof JButton)
					{
						if(((JButton)mas[i]).getText().equals("Test " + (count - 1)))
						{
							box1.remove(mas[i]);
							revalidate();
							count--;
							break;
						}
					}
				}
			}
		});
        
     
        
        jScrollPane2.setViewportView(box1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 182, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 238, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE)
                    .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>   



    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(BoxTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(BoxTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(BoxTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(BoxTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new BoxTest().setVisible(true);
            }
        });
    }
    
 // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JScrollPane jScrollPane2;
    private Box box1;
    // End of variables declaration    
    
 
}
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое добавление компонентов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]