powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачка по Java
4 сообщений из 4, страница 1 из 1
Задачка по Java
    #38496578
DrunkWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В java новичек. Такой код:

Код: 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.
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class TestViewer {

public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
public void run() {

	JDialog dialog = new TestDialog();  //Настройки окна{
	dialog.setLocationRelativeTo(null);
	dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
	dialog.setTitle("Type text and press Enter");
	dialog.setSize(300, 700);
	dialog.setVisible(true);
	dialog.setLocationRelativeTo(null);
	dialog.setModal(true); //}
}
});
}
}

class TestDialog  extends JDialog {

public TestDialog() {
	getContentPane().add(new JPanel(), BorderLayout.CENTER);
	getContentPane().add(createBtnPanel(), BorderLayout.CENTER);
}

private JPanel createBtnPanel() {
	int n = 100; //количество кнопок
	//Массив названий кнопок{
	final String ArrButtonNames[] = new String[n];  //массив имен кнопок
    for (int h = 0; h < ArrButtonNames.length; h++) {
        if ((h%2)==0){
            ArrButtonNames[h]="Filter"+h;
        }
        else{
            ArrButtonNames[h]="Button"+h;
        }
    }

	final JButton ArrButton[] = new JButton[n];//массив кнопок
	final JPanel btnPanel = new JPanel(new GridLayout(0, ArrButtonNames.length, 1,1));
	btnPanel.setLayout(new GridLayout(0, 1));
  	final JTextField textField = new JTextField();  // строка для фильтра
    textField.setColumns(23);
    btnPanel.add(textField);
	for (int i = 0; i < ArrButtonNames.length; i++) {   /////Наполняем панель кнопками
        String btnString = ArrButtonNames[i];
        JButton button = new JButton(btnString);
       //размер кнопок выставляется, но все сбрасывается после фильтрации, если на панели есть скролбар{
 	    Dimension d = button.getPreferredSize();
		d.setSize(d.getWidth(), d.getHeight()*1);  
		button.setPreferredSize(d);
		button.setSize(d);
		button.setMinimumSize(d);
		button.setMaximumSize(d);	
		////}
	   btnPanel.add(button);
       ArrButton[i] = button;
	}
	textField.addActionListener(new ActionListener() {  
	public void actionPerformed(ActionEvent e) {
		for(int  k = 0; k < ArrButtonNames.length; k++) { 
            if(ArrButtonNames[k].indexOf(textField.getText())==-1) {   //поиск среди имен кнопок по введенной подстроке
                btnPanel.remove(ArrButton[k]);
                btnPanel.revalidate();
                btnPanel.repaint();
			}
		}
 	}	
    });

// Создаем основную панель, куда все это поместим и скроллбар.{

	JPanel MainPanel = new JPanel();
	MainPanel.setLayout(new BorderLayout());
	MainPanel.add(btnPanel, BorderLayout.NORTH);
	final JScrollPane scrollPane = new JScrollPane(btnPanel);
	MainPanel.add(scrollPane, BorderLayout.CENTER);
	scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); //}
	return MainPanel;
}
}


Задача сделать так, чтобы высота кнопок не менялась после фильтрации по названию в строке ввода. Заранее благодарен.
...
Рейтинг: 0 / 0
Задачка по Java
    #38501852
DrunkWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?
...
Рейтинг: 0 / 0
Задачка по Java
    #38501933
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лень гуглить :C
...
Рейтинг: 0 / 0
Задачка по Java
    #38502737
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrunkWolf, бери среду NetBeans и рисуй в ней форму. Она тебе сгенерит layout
в котором размеры батонов будут фиксед. Потом этот класс вставишь в свой
проект и всё будет чики-пики.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачка по Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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