Комментарии: Пользовательский интерфейс, часть 2 http://java-course.ru Sun, 11 Aug 2019 15:10:29 +0000 hourly 1 https://wordpress.org/?v=5.2.5 Автор: Юрий http://java-course.ru/student/book1/ui-part2/#comment-11272 Mon, 27 Feb 2017 11:52:47 +0000 http://java-course.ru/?page_id=167#comment-11272 Похоже, что таблица групп заполняется с помощью метода:
public String toString() {
return nameGroup;
}

]]>
Автор: admin http://java-course.ru/student/book1/ui-part2/#comment-10799 Mon, 03 Oct 2016 06:44:28 +0000 http://java-course.ru/?page_id=167#comment-10799 Там список групп, и каждая группа имеет ID и имя. Посмотрите внимательно код

]]>
Автор: Павел http://java-course.ru/student/book1/ui-part2/#comment-10778 Sat, 24 Sep 2016 12:11:45 +0000 http://java-course.ru/?page_id=167#comment-10778 А как в grpList сразу загружается список групп? Почему именно названия групп, а не ID или любое другое поле? Где явно задается что там именно Select groupName ?

]]>
Автор: admin http://java-course.ru/student/book1/ui-part2/#comment-10274 Thu, 07 Jan 2016 22:20:28 +0000 http://java-course.ru/?page_id=167#comment-10274 Подтвердить, что это хорошее (и более верное) решение ? Да, это более верное решение с точки зрения использования Swing. Я в общем мало занимался Swing и данные статьи были написаны просто для того, чтобы было не скучно дальше. Да и писалось это лет 10 назад. Я очень хочу переписать весь «Отдел кадров» — но после того, как закончу «Начала Java»

]]>
Автор: Konstantin http://java-course.ru/student/book1/ui-part2/#comment-10273 Thu, 07 Jan 2016 20:24:00 +0000 http://java-course.ru/?page_id=167#comment-10273 Пол года я подождал и никакого ответа на мой комментарий от «Июнь 28, 2015 at 19:07» !!!
У меня уже кончается терпение!

]]>
Автор: Konstantin http://java-course.ru/student/book1/ui-part2/#comment-9462 Sun, 28 Jun 2015 19:07:39 +0000 http://java-course.ru/?page_id=167#comment-9462 И вот наконец то Final Version:
private void reloadStudents(){
Thread t = new Thread(){
public void run(){
if(stdList != null){
Group g = (Group) grpList.getSelectedValue();
int y = ((SpinnerNumberModel) spYear.getModel()).getNumber().intValue();
try{
Collection s = ms.getStudentsFromGroup(g,y);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
stdList.setModel(new StudentTableModel(new Vector(s)));
}
});

}catch(SQLException e){
JOptionPane.showMessageDialog(StudentsFrame.this, e.getMessage());
}
}
}
};
t.start();
}

вот так работает не тормозит и ни каких Exeption!!!

]]>
Автор: Konstantin http://java-course.ru/student/book1/ui-part2/#comment-9461 Sun, 28 Jun 2015 18:38:02 +0000 http://java-course.ru/?page_id=167#comment-9461 А вот и нет))) при таком исправлении, если поставить sleep(3000), программа зависает и нет возможности нажать ни на одну кнопку. То есть вернулись к тому с чего начали(
Admin HELP!

]]>
Автор: Konstantin http://java-course.ru/student/book1/ui-part2/#comment-9460 Sun, 28 Jun 2015 17:30:58 +0000 http://java-course.ru/?page_id=167#comment-9460 Жаль, что вы не успели ответить, но возможно я нашел причину Excepion. По моему мнению причина кроется в том, что когда мы выбираем группу, вызывается метод — reloadStudents(), в котором мы, чтоб не тормозить программу, создали отдельный поток в котором и пытаемся отобразить данные из нашей базы установив новую модель для таблицы. Так вот, как я понял, любые действия с User Interface должны производится при помощи класса -javax.swing.SwingUtilities и его методов -invokeAndWait(Runnable) и invokeLater(Runnable).
Переделал код и больше ни одного Exeption, плюс при загрузке программы стала отображаться таблица сразу, когда ранее приходилось делать выбор группы для отображения таблицы.
В Общем прошу меня поправить если я в чем либо ошибаюсь либо подправить код и добавить комментарии касательно этого момента.
В любом случае спасибо за полезный пример, ниже выкладываю переделанный метод reloadStudents() —
private void reloadStudents(){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
if(stdList != null){
Group g = (Group) grpList.getSelectedValue();
int y = ((SpinnerNumberModel) spYear.getModel()).getNumber().intValue();
try{
Collection s = ms.getStudentsFromGroup(g,y);
stdList.setModel(new StudentTableModel(new Vector(s)));
}catch(SQLException e){
JOptionPane.showMessageDialog(StudentsFrame.this, e.getMessage());
}
}
}
});
}

]]>
Автор: Konstantin http://java-course.ru/student/book1/ui-part2/#comment-9458 Sat, 27 Jun 2015 19:58:10 +0000 http://java-course.ru/?page_id=167#comment-9458 Здравствуйте. На этапе этого урока программа выдает Exception при поочередной смене групп.
Работаю в Eclipse. При чем не при каждой смене группы, а на раз восьмой, иногда пятнадцатый, в общем зависимости от чего либо, я не вижу. Программа не прекращает работу, а просто в консоль выдает следующее:
Exception in thread «AWT-EventQueue-0» java.lang.ArrayIndexOutOfBoundsException: 2 >= 0
at java.util.Vector.elementAt(Vector.java:474)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2012)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
at javax.swing.JComponent.paintComponent(JComponent.java:780)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5219)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290)
at javax.swing.RepaintManager.paint(RepaintManager.java:1265)
at javax.swing.JComponent._paintImmediately(JComponent.java:5167)
at javax.swing.JComponent.paintImmediately(JComponent.java:4978)
at javax.swing.RepaintManager$4.run(RepaintManager.java:824)
at javax.swing.RepaintManager$4.run(RepaintManager.java:807)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:807)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:782)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:731)
at javax.swing.RepaintManager.access$1300(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1720)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Это значение в первой строке каждый раз разное — «2 >= 0»
Уже третий день ищу причину, пожалуйста подскажите в чем она.
P.S. Спасибо за вашу работу, очень полезный пример и хорошо преподнесен.

]]>