Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/27: Рейтинг темы: голосов - 27, средняя оценка - 4.96
SuLLeN
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 830
1

Отступы и параметры для массива кнопок

22.09.2013, 11:52. Просмотров 5223. Ответов 4
Метки нет (Все метки)

Добрый день!

Есть функция setCenter(); задающая массив кнопок и отображающая их внутри формы в центре.
Нужно сделать отступ со всех сторон и установить для некоторых кнопок другие значения (надписи внутри кнопок)
Как это сделать?

вот код:
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
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
 
public class Lab_4_1 {
 
    public static void main(String[] args) {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        JFrame frame = new JFrame("FrameDemo"); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        int sizeWidth = 376;
        int sizeHeight = 300;
        int locationX = (screenSize.width - sizeWidth) / 2;
        int locationY = (screenSize.height - sizeHeight) / 2;
        frame.setSize(sizeWidth,sizeHeight);
        frame.setLocation(locationX, locationY);
        frame.setResizable(false);
        
        setNorth(frame);
        setCenter(frame);
        frame.setVisible(true);
    }
    public static void setNorth(JFrame fr){
        Box myBox1=new Box(BoxLayout.X_AXIS);
        myBox1.add(Box.createVerticalStrut(20));
        myBox1.add(new JLabel("Метка1"));
        myBox1.add(Box.createVerticalGlue());
        myBox1.add(new JSlider());
        myBox1.add(Box.createVerticalGlue());
        myBox1.add(new JLabel("Метка2"));
        myBox1.add(Box.createVerticalStrut(20));
        fr.add(myBox1,BorderLayout.NORTH);
    }
    public static void setCenter(JFrame fr){
        ButtonGroup myGroup=new ButtonGroup();
        JPanel myPanel2=new JPanel();
        ArrayList<JButton> masB=new ArrayList<JButton>();
        myPanel2.setLayout(new GridLayout(4,4,4,4));
        for (int i=0;i<12;i++){
            masB.add(new JButton(i+1+""));
            myGroup.add(masB.get(i));
            myPanel2.add(masB.get(i));
        }
        fr.add(myPanel2,BorderLayout.CENTER);
    }
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 11:52
Ответы с готовыми решениями:

Из созданного массива кнопок одна из кнопок (9) должна выполнять метод Percent
Из созданного массива кнопок одна из кнопок (9) должна выполнять метод Percent, но после запуска...

Обработчик для массива кнопок
Есть массив кнопок, создающийся динамически, как к каждой кнопке написать код, чтоб по клику она...

Обработка событий для массива кнопок
Здравствуйте. У меня в программе создается массив из N ImageButton. и для каждой кнопки нужно...

Создать массив кнопок, для каждой кнопок будет одинаковый обработчик
Всем привет! Нужна помощь в реализации такой задачи. Нужно создать массив кнопок, для каждой...

Отступы при выводе массива
Как вывести чтоб было нормально выведено, я имею ввиду отступы странные выходят. package...

4
verylazy
Заблокирован
22.09.2013, 12:16 2
Java
1
2
GridLayout l = new GridLayout(4,4,10,20);
myPanel2.setLayout(l);
где 10 и 20 промежутки между элементами лейаута по горизонтали и вертикали

а надписи на кнопках менять можно так masB.get(i).SetText("ololo");
где i - это номер кнопки, ваш кэп
0
SuLLeN
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 830
22.09.2013, 13:52  [ТС] 3
Цитата Сообщение от verylazy Посмотреть сообщение
GridLayout l = new GridLayout(4,4,10,20);
myPanel2.setLayout(l);
Делает отступ внутри myPanel2, а мне нужно снаружи ( отступ от краев формы )
Прошу прощения за то, что не уточнил.

Не по теме:

Для кого то и "кеп", а кто то учится=)

0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10677 / 6376 / 1589
Регистрация: 25.07.2009
Сообщений: 12,122
22.09.2013, 15:36 4
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
package easybudda.examples;
 
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
 
public class ButtonsPanelExample {
 
    ButtonsPanelExample() {
        JPanel buttonsPanel = new JPanel();
        buttonsPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
        buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.PAGE_AXIS));
        
        String [] buttonNames = { "First", "Second", "Third" };
        ActionListener listener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                JOptionPane.showMessageDialog(null, "Button " + ae.getActionCommand() + " pushed");
            }
        };
        JButton [] buttons = new JButton [ buttonNames.length ];
        Dimension buttonDimension = new Dimension(120, 30);
        for ( int i = 0; i < buttons.length; ++i ) {
            buttons[i] = new JButton(buttonNames[i]);
            buttons[i].addActionListener(listener);
            buttons[i].setMaximumSize(buttonDimension);
            buttons[i].setPreferredSize(buttonDimension);
            buttonsPanel.add(buttons[i]);
        }
        
        JFrame mainFrame = new JFrame("Buttons panel example");
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFrame.add(buttonsPanel);
        mainFrame.pack();
        mainFrame.setVisible(true);
    }
    
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new ButtonsPanelExample();
            }
        });
    }
 
}
1
SuLLeN
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 830
23.09.2013, 19:10  [ТС] 5
easybudda, спасибо! Можно было просто кинуть не строчу:
Java
1
myPanel2.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
и я бы все понял=)
2
23.09.2013, 19:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2013, 19:10

Отступы для блока
Приветствую. Существует блок div, внутри которого еще один блок с тремя столбцами. Как сделать...

Отступы для всей таблицы
Есть вот такая ситуация: Нужно на определенном фоне сделать таблицу меньшего размера. В таблице...

Настроить отступы для маркеров
Ребят, подскажите, пожалуйста, как в Word 2007 задать отступы для конкретного класса маркеров...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.