Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по наследованию от JInternalFrame / 25 сообщений из 32, страница 1 из 2
20.06.2007, 01:06:19
    #34606358
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
На основе JInternalFrame я создаю свой класс (скажем ClassForm)
на формочку кидаю jTable и еще чегонить
Потом хочу создать на основе ClassForm уже рабочую форму
public class BrowseData extends ClassForm
..
..

Но на созданной форме jTable и других компонентов нету...
Чего не так ?
...
Рейтинг: 0 / 0
20.06.2007, 09:00:25
    #34606611
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
Хорошо бы код увидеть - хотя бы значимые его части. А то предполоджить можно что угодно, например, что Вы не из конструктора, а из метода main добавляете на родительский фрейм таблицы и прочее.

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
Aiya Eärendil Elenion Ancalima!
...
Рейтинг: 0 / 0
20.06.2007, 09:02:33
    #34606616
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
метод в котором происходит "накидывание" вызывается?

наследование в gui дизайнерах - полнейший бред. ознакомтесь лучше с building ом напр как на jgoodies советуют
...
Рейтинг: 0 / 0
20.06.2007, 10:32:04
    #34606837
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
exppметод в котором происходит "накидывание" вызывается?

наследование в gui дизайнерах - полнейший бред. ознакомтесь лучше с building ом напр как на jgoodies советуют

Т.е. GUI-дизайнеров нету нормальных или что ?
...
Рейтинг: 0 / 0
20.06.2007, 10:42:45
    #34606875
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
Стоп, а при чем тут вообще GUI ?

Создаю базовый класс (точнее код генерит NetBeans)

public class BaseClass extends javax.swing.JInternalFrame
{

/** Creates new form BaseClass */
public BaseClass()
{
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.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents()
{

jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();

jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][]
{
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String []
{
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);

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()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 379, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 281, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

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


// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration

Создаю на его основе свою форму

public class WorkForm extends BaseClass
{

/** Creates new form WorkForm */
public WorkForm()
{
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.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents()
{

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 394, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 274, Short.MAX_VALUE)
);

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


// Variables declaration - do not modify
// End of variables declaration

}


}

Что - то еще надо сделать ? Я jTable ни в GUI не вижу, ни в RunTime
...
Рейтинг: 0 / 0
20.06.2007, 10:54:50
    #34606916
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
Нечитаемо абсолютно.

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
Aiya Eärendil Elenion Ancalima!
...
Рейтинг: 0 / 0
20.06.2007, 11:07:33
    #34606976
Anarion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
Читаем про наследование...
1. Метод initComponents() - private. Как ты его вызовешь из дочки?
2. Метод initComponents() в дочке нигде не вызывается.

Сделай оба метода protected и из метода дочки сначала вызывай метод родителя.
Код не читал, как эта хрень взлетит неизвестно.
...
Рейтинг: 0 / 0
20.06.2007, 11:09:43
    #34606985
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
olegov , у вас метод InitComponents предка в потомке нигде не вызывается. Какую JTable вы еще хотите увидеть???
...
Рейтинг: 0 / 0
20.06.2007, 11:12:25
    #34607000
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
Еще разок

//Создаю вой (базовый) класс от
public class BaseClass extends javax.swing.JInternalFrame
{
public BaseClass()
{
initComponents();
}

// Этот метод нерерит NetBeans (описание элементов формы)
private void initComponents()
{
jScrollPane1 = new javax.swing.JScrollPane(); // Кидает панель прокрутки для таблицы
jTable1 = new javax.swing.JTable(); // Кидает таблицу

// Описывает модель таблицы (тупую по умолчанию, в данном случае не важно)
jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object [][]
{
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String []
{
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);

// Описывает механизм расположения элементов на форме
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()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 379,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 281,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

pack();
}
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
}


Создаю на его основе свою форму

public class WorkForm extends BaseClass
{
public WorkForm()
{
initComponents();
}

private void initComponents()
{
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 394, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 274, Short.MAX_VALUE)
);
pack();
}
}

так вроде читабельнее
Не пойму как тут отступы проставить. При наборе нормально, при просмотре левых отступов нет
...
Рейтинг: 0 / 0
20.06.2007, 11:16:38
    #34607017
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
AnarionЧитаем про наследование...
1. Метод initComponents() - private. Как ты его вызовешь из дочки?
2. Метод initComponents() в дочке нигде не вызывается.

Сделай оба метода protected и из метода дочки сначала вызывай метод родителя.
Код не читал, как эта хрень взлетит неизвестно.

Дык InitComponents NetBeans генерит сам и править его не дает (в числе и private на protected)
Елы палы, действительно базовые классы проще руками писать с таким раскладом.
...
Рейтинг: 0 / 0
20.06.2007, 11:55:15
    #34607186
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
olegov Еще разок

так вроде читабельнее
Не пойму как тут отступы проставить. При наборе нормально, при просмотре левых отступов нет

тэг SRC есть для кода
...
Рейтинг: 0 / 0
20.06.2007, 12:02:27
    #34607219
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
точно не знаю как GroupLayout работает (не пользовался им никогда), но предположение такое что в своем потомке устанавливаешь новый Layout и все старые компоненты у тебя пропадают

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     private   void  initComponents() {

        javax.swing.GroupLayout layout =  new  javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGap( 0 ,  394 ,  Short .MAX_VALUE)
        );
        layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGap( 0 ,  274 ,  Short .MAX_VALUE)
        );
    }
...
Рейтинг: 0 / 0
20.06.2007, 12:15:21
    #34607264
Anarion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
Кстати, да. У тебя компоненты или перекроют друг друга или будет что-то одно. Такие вещи лучше писать руками.
...
Рейтинг: 0 / 0
20.06.2007, 12:43:35
    #34607395
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
vas0точно не знаю как GroupLayout работает (не пользовался им никогда), но предположение такое что в своем потомке устанавливаешь новый Layout и все старые компоненты у тебя пропадают

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     private   void  initComponents() {

        javax.swing.GroupLayout layout =  new  javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGap( 0 ,  394 ,  Short .MAX_VALUE)
        );
        layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGap( 0 ,  274 ,  Short .MAX_VALUE)
        );
    }


точно, сабака тут порылась. Если в своей рабочей форме я комментрию initComponents();
то в RunTime все ok. Правда в дизайнере так ничего и не видно. Туда как раз NetBeans из метода initComponents() все и дергает.
...
Рейтинг: 0 / 0
20.06.2007, 19:00:30
    #34608897
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
И как тут быть теперь. ОТказаться от GUI ? Это бред. Проектик не кислый намечается. Руками его сто лет кодить придется. В NetBeans может есть механизм какой то ?
...
Рейтинг: 0 / 0
20.06.2007, 19:11:20
    #34608919
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
не а. нормального gui дизайнера не видел. прочитайте про building или всякие xml билдеры свинговых форм посмотрите

мануальный гуй сильно повышает качество архитектуры. (если не копипастить)
...
Рейтинг: 0 / 0
20.06.2007, 20:08:39
    #34609018
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
Среднехиленькая бухгалтерская программка аля 1С Бухгалтерия 7.7 насчитывает под сотню форм просмотра/ввода данных. В нашей торговой программке сейчас около 270 с хвостиком форм. 80% форм строятся на основе 2-4 базовых классов, но практически каждая имеет массу своих наворотов, которые не визуально задолбаешься наворачивать. Раскидать кнопки и контролы как нипопади лишь бы они были ? Кто такое чудище купит ?
...
Рейтинг: 0 / 0
21.06.2007, 09:49:04
    #34609613
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
сколько не смотрел формостроителей - лучший у жбилдера. Все эти формочки одна от другой наследуемые прекрасно в нём отображаются. У нетбинса конечно хороший редактор форм но пользоваться им невозможно
...
Рейтинг: 0 / 0
21.06.2007, 10:26:50
    #34609740
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
olegovСреднехиленькая бухгалтерская программка аля 1С Бухгалтерия 7.7 насчитывает под сотню форм просмотра/ввода данных. В нашей торговой программке сейчас около 270 с хвостиком форм. 80% форм строятся на основе 2-4 базовых классов, но практически каждая имеет массу своих наворотов, которые не визуально задолбаешься наворачивать. Раскидать кнопки и контролы как нипопади лишь бы они были ? Кто такое чудище купит ?

я могу тока повториться ...oop-pattern'ы спасут отца русской демократии.
единственное во что я верю это во всякие Swing XML, или F3 там всякие ... только слишком много их развелось, выбрать наверное трудно
...
Рейтинг: 0 / 0
21.06.2007, 12:00:56
    #34610210
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
патерны-шматерны. Рисовать мышкой удобней чем код сразу писать
...
Рейтинг: 0 / 0
21.06.2007, 12:26:54
    #34610338
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
1024патерны-шматерны. Рисовать мышкой удобней чем код сразу писать

продуманный гуёвый минифрэймворкчег позволяюши писать типа сделайФорму из этого и этого, прицепи к этому рвёт в клочья гуйдизайнерский копипаст
...
Рейтинг: 0 / 0
21.06.2007, 13:01:57
    #34610544
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
8)

можно где-то примеры увидеть?
...
Рейтинг: 0 / 0
21.06.2007, 13:58:36
    #34610842
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
expp
продуманный гуёвый минифрэймворкчег позволяюши писать типа сделайФорму из этого и этого, прицепи к этому рвёт в клочья гуйдизайнерский копипаст

Эт чегой то такое "гуйдизайнерский копипаст" ? Как раз если нормальный ГУИ то никакого копи/паста не нужно. Создал один раз универсальный класс формы с табличкой и кнопками, а потом наследуй от нее, да привешивай картиночки да кнопочки специфические.
...
Рейтинг: 0 / 0
21.06.2007, 14:17:26
    #34610907
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
ок. на каждой форме в табличке должны быть разные колонки?

и как ?
...
Рейтинг: 0 / 0
21.06.2007, 14:40:47
    #34610996
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по наследованию от JInternalFrame
что как? Не заешь? Задай вопрос. В жбилдере кстати в редакторе всё будет прекрасно видно
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по наследованию от JInternalFrame / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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