20 / 20 / 3
Регистрация: 07.02.2014
Сообщений: 233
1

Обход создания метода-посредника

20.04.2015, 17:12. Показов 426. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как напрямую связать кнопку и метод второй панели?
Так же интересует почему между второй панелью и и верхней гранью первой панели появляется отступ и как его убрать?
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
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class Main2 {
 
    public static void main(String[] args) {
        Frame f = new Frame();
    }
}
 
class Frame extends JFrame {
 
    private JButton b;
    private Panel p;
    private boolean panelState = false;
 
    public Frame() {
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
 
        this.p = new Panel();
        this.getContentPane().add(this.p, BorderLayout.CENTER);
 
        this.b = new JButton("button");
        this.getContentPane().add(this.b, BorderLayout.NORTH);
        this.b.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (Frame.this.panelState == false) {
                    Frame.this.panelState = true;
                    Frame.this.p.setColor(Color.black);//изменить это
                    System.out.println("black");
                } else {
                    Frame.this.panelState = false;
                    Frame.this.p.setColor(Color.blue);//и это
                    System.out.println("blue");
                }
            }
        });
 
        this.pack();
        this.setVisible(true);
    }
}
 
class Panel extends JPanel {
 
    private Panel2 p2;
 
    public Panel() {
        this.setPreferredSize(new Dimension(300, 200));
        this.setBorder(BorderFactory.createLineBorder(Color.red));
 
        this.p2 = new Panel2();
        this.add(this.p2);
    }
 
    public void setColor(Color c) {//Убрать этого посредника
        p2.setColor(c);
    }
}
 
class Panel2 extends JPanel {
 
    public Panel2() {
        this.setPreferredSize(new Dimension(200, 100));
        this.setBackground(Color.blue);
    }
 
    public void setColor(Color c) {
        this.setBackground(c);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2015, 17:12
Ответы с готовыми решениями:

Обход создания драйвера ODBC
Есть несколько готовых программ на Delphi 7 с базами данных MS Access. Чтобы их запустить и...

Обход элементов std::map в порядке их создания
Имеется ассоциативный массив и его заполнение: std::map<unsigned,string> arr; arr = "abc"; arr...

Ошибка создания виртуального метода?
Здравствуйте, хочу сделать так что бы программа(на андроид) рисовала по заданным координатам, но...

Вызов метода для создания панели
Здравствуйте. Есть класс (создание панели с параметрами) и кнопка, по нажатию которой эта панель...

1
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
21.04.2015, 11:30 2
Чтобы избавиться от метода-посредника придётся заиметь ссылку на Panel2 либо в Frame, либо в обработчике (тогда обработчик должен либо создаваться в Panel2, либо находиться в отдельном классе).

Откуда появился отступ станет ясно, если почитать документацию.
Кликните здесь для просмотра всего текста
Java
1
2
public Panel() {
    super(new FlowLayout(FlowLayout.CENTER, 5, 0), true);
1
21.04.2015, 11:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2015, 11:30
Помогаю со студенческими работами здесь

Вызов метода без создания экземпляра типа
Доброго времени суток, ув. форумчане! У меня вот такая ситуация public partial class Form1 :...

Создания метода-конвертера символов CHAR в Int
Будьте добры помогите как мне символы кириллицы конвертировать в int согласно коду символа. Тобишь...

Ошибка при вызове метода до создания приложения
Шалом всем дотнетчикам и тем кто не у дел. Решил заняться изучением ASP.NET MVC. Прочтение книги...

Непонятна причина создания класса ради одного метода
Всем доброго времени суток! Дано три класса: public class Product { public int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru