![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
1. Создаю две панели. КОгда они в одном файле - все работает. Когда же они в двух разных файлах (каждая - в своем) - по нажатию на кнопку в одной панели - не могу обратиться в другую. Как это сделать?
2. Создал две панельки, а они ровно пополам делят весь фрейм. Как каждой задать определенный размер? |
|||
|
||||
SmaLL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
-------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Shorr Kan
Модератор: Делаю замечание - один вопрос, один топик. Это правило не из вредности, а для удобства. Сам догадайся, на какой вопрос тебе ответили 1. Без кода помочь невозможно. 2. Почитать про LayoutManager, что посоветовал SmaLL или создать свои панельки (новые классы) и переопределить в них getPreferredSize() и getMinimumSize() |
|||
|
||||
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
Хорошо, в следующий раз буду по одному вопросу задавать. Сейчас продолжаю первый, так как второй ясено и закрыт. Спасибо.
1. JBuilder создает проект из двух файлов. Первый посылать не буду - он, полагаю, для всех понятен. Там я ничего не трогал. Во втором файле я просто поставил ссылки на два моих дополнительных класса. Вот текст этого, второго, файла: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class panelapp extends JFrame { JPanel contentPane; BorderLayout borderLayout1 = new BorderLayout(); JPanel panel_1; JPanel panel_2; //Construct the frame public panelapp() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(new GridLayout(1, 2)); this.setBounds(100,100,400,300); this.setTitle("panelapp"); panel_1 = new panel1(); panel_2 = new panel2(); contentPane.add(panel_1); contentPane.add(panel_2); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } } Теперь текст файла panel1: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class panel1 extends JPanel { public panel1() { this.setBackground(Color.yellow); } } И файл panel2: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class panel2 extends JPanel { Button but_1; Button but_2; public panel2() { this.setBackground(Color.red); but_1= new Button("123"); add(but_1); but_2= new Button("456"); add(but_2); } public boolean action(Event evt, Object obj) { if(evt.target instanceof Button) { if(evt.target.equals(but_1)) { this.setBackground(Color.red); } if(evt.target.equals(but_2)) { this.setBackground(Color.yellow); } } return false; } } Когда это было в одном файле - все работало прекрасно. Сейчас, конечно, нет. Понятно, почему - глобальных переменных не существует в этом языке. Но как это исправить? |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Скопировал все три класса по разным файлам в одну директорию и запустил следующее:
Все прекрасно собралось. Правда main нет и посему не запустить. Но все нормально собирается. |
|||
|
||||
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
Файл, содержащий main таков:
import javax.swing.UIManager; public class twopanel { boolean packFrame = false; //Construct the application public twopanel() { panelapp frame = new panelapp(); //Validate frames that have preset sizes //Pack frames that have useful preferred size info, e.g. from their layout if (packFrame) { frame.pack(); } else { frame.validate(); } frame.setVisible(true); } //Main method public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { e.printStackTrace(); } new twopanel(); } } Но вопрос не в этом. Да, он собирается, но не работают кнопки. Кнопка, находящаяся в одной панели, не воздействует на другую панель. Я так понимаю, что проблема в области видимости. Когда все в одном файле - все понятно и работает. Когда же в разных - перестает работать. Как можно решить эту проблему? |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Так тогда просто ничего не собралось бы. Я поиграл - цвет меняется. То все желтенькое, то половина красненькая. Все нормально. |
|||
|
||||
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
Да? А у меня не работает. Может это быть из-за того, что у меня используется jdk1.2.2 ?
|
|||
|
||||
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
А сейчас у меня вот что происходит:
C:\JBuilder35\jdk1.2.2\bin>javac *.java Note: panel2.java uses or overrides a deprecated API. Recompile with "-deprecat ion" for details. 1 warning Это сообщение отредактировал(а) Shorr Kan - 15.1.2004, 07:33 |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Во-первых, надо запустить javac с флагом -deprecation javac -deprecation *.java и посмотреть что именно не так. А во-вторых, у меня под 1.4.2_03 (самая распоследняя версия - требуют от нас знаете ли) никаких подобных сообщений нет. |
|||
|
||||
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
Я удалил всю возможную яву, даже все IDE... ПОставил SE 1.4.2_03. Но там нет файла javac.exe
Как быть? |
|||
|
||||
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
Забыл уточнить - J2RE SE 1.4.2_03. Вот ее я поставил.
(если я все правильно понял, то J2RE и JDK - разные вещи...) |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Надо ставить SDK - только там есть компилятор и еще некторые утилиты. Где найти - можно посмотреть в FAQ, там указано. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Не найденна переменная. У меня такое впечатление что ты хочешь изменить цвет панели кнопкой из другой панели.
1) в Javа нет глобальных(никому не пренадлежащих) переменных(и функций тоже) -> Документация -> азы. 2) если ты хочешь изменить свойство обьекта то ты должен иметь на него ссылку, см. выше. Вот простое решение:
Shorr Kan мне кажется, что тебе надо повторить Java с самого начала, с каким-нибудь хорошим учебником. PS. Не открывай второй топик с одинаковой темой. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Shorr Kan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 30.12.2003 Репутация: нет Всего: нет |
О, большое спасибо! Именно это и хотел сделать.
p.s. Только Java мне не повторять надо... А изучать ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |