Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Хоть кто-нибудь покажет пример?


Автор: sanik 31.12.2004, 20:13
М
 
Удалено как не относящееся к теме.

покажите пожалуйста пример работающего клиент-серверного приложения
М
 
Удалено как не относящееся к теме.

Автор: Kurt 1.1.2005, 01:40
Ну, те же многострадальные http://forum.vingrad.ru/index.php?showforum=83.
Скачай исходники и разбирайся. Чем не клиент-сервер?

Автор: Domestic Cat 1.1.2005, 03:05
Работают конечно, но недоделаны smile

Автор: sanik 1.1.2005, 04:01
По-человечески ведь попросил!

Вот в дельфи как все просто обяснено:

если хочешь показать таблицу на экране -
то нужен dataset ('это может быть и Query и StoredProc и Table)
а также на форме гуя нужен datasource, указывающий на этот dataset.
а также компонент Grid, в котором отображаешь данные.

Что там нужно сделать

0) на форме расположить:
1) открыть dataset
2) присвоить имя нужного dataset в datasource
3) присвоить этот datasource этому Grid

и Все - данные на экране на форме.

Мне до сих пор не понятно КАК данные из ЛЮБОЙ таблицы(хранимой процедуры, квери, таблицы....) показать на форме.
Ну нет примеров нигде - везде в имеющихся это сделано с НАБИТЫМ в самом классе СОДЕРЖИМЫМ таблицы и с названиями полей заранее прописанными в строковый массив. Это не лечит, а развращает - так как применить на практике это невозможно.

Почему это так трудно явистам- взять и показать на примере ГОТОВОМ - пусть таблица будет из двух-трех полей состоять и трех строк - но покажите, пожалуйста, ЦЕЛИКОМ готовое приложение


НЕ ВЕРИТЕ МНЕ, поверьте линку

http://java.spb.ru/tran/docs/javabook/12.shtml
Работа с таблицами

Код

public class SimpleTableDemo extends JPanel {
public SimpleTableDemo() {
 JTable table = new JTable(new MyTableModel());

 JScrollPane scrollPane = new JScrollPane(table);
 scrollPane.setPreferredSize(new Dimension(400, 100));

 setLayout(new GridLayout(1, 0));
 add(scrollPane);
}

class MyTableModel extends AbstractTableModel {
final String[] columnNames = {"First Name",
       "Last Name",
       "Sport",
       "Est. Years Experience"};
final String[][] data = {
 {"Mary", "Campione", "Snowboarding", "5"},
 {"Alison", "Huml", "Rowing", "3"},
 {"Kathy", "Walrath", "Chasing toddlers", "2"},
 {"Mark", "Andrews", "Speed reading", "20"},
 {"Angela", "Lih", "Teaching high school", "4"}
};

public int getColumnCount() {
 return columnNames.length;
}

public int getRowCount() {
 return data.length;
}

public String getColumnName(int col) {
 return columnNames[col];
}

public Object getValueAt(int row, int col) {
 return data[row][col];
}
}
 . . .
}



ну и что мне с этим делать - я же не знаю сколько у меня строк в МОЕЙ таблице на сервере, их еще прочитать надо как-то,
(допустим, я хочу показать конкретные колонки а не все подряд - пытался ИХ НЕ ПОКАЗЫВАТЬ ненужные - ну и что - вообще ничего не показывает, удалил код непоказывания - показывает ОДНУ строку....

Автор: Domestic Cat 1.1.2005, 04:21
Ну так это тогда не клиент-сервер, т.к. нетворкинга нету.
Цитата(sanik @ 31.12.2004, 19:01)

Почему это так трудно явистам- взять и показать на примере ГОТОВОМ - пусть таблица будет из двух-трех полей состоять и трех строк - но покажите, пожалуйста, ЦЕЛИКОМ готовое приложение

1. Берем любой пример, например
http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/TableDemo.java
2. Убираем оттуда хардкодед содержимое таблицы.
3. Добавляем метод типа
Код

public void setData(String[] columnNames, String[][] data)
{
      this.columnNames = columnNames;
      this.data = data;
}

или аналогичный, в зависимости от того, как ты хочешь хранить данные. Массивы дают быстрый доступ к элементам, но если ты захочешь менять динамически размер массива, это будет неэффективно. Есть множество вариантов, хеш мепы, аррай листы и т п, тебе нужно решать.
Чего тут сложного-то, ну передаешь данные в модель и все.

Цитата(sanik @ 31.12.2004, 19:01)
Мне до сих пор не понятно КАК данные из ЛЮБОЙ таблицы(хранимой процедуры, квери, таблицы....) показать на форме.


Так есть миллион книжек, где все подробно разбирается, код на СД, и т д. У меня есть пример готового приложения (как раз клиент-сервер), где данные тянутся из сети через РМИ; но оно довольно большое и чем разбираться с ним, проще разобраться с таблицей самому.

Цитата(sanik @ 31.12.2004, 19:01)
Ну нет примеров нигде

в нете все есть
Цитата(sanik @ 31.12.2004, 19:01)
Почему это так трудно явистам- взять и показать на примере ГОТОВОМ - пусть таблица будет из двух-трех полей состоять и трех строк - но покажите, пожалуйста, ЦЕЛИКОМ готовое приложение

На Java обучают в большинстве американских университетов; думаешь, нет готовых примеров?

Автор: sanik 1.1.2005, 05:46
как это нет нетворкинга?

а мой класс DB - он же как раз ходит на сервер (другое дело что я там жестко прописал логин и пароль - так это для отладки же ) на самом деле нужен еще класс для логина написать чтоб передавать эти параметры

Автор: Domestic Cat 1.1.2005, 06:15
ну, значит да.

Автор: igon 1.1.2005, 15:32
Цитата
Мне до сих пор не понятно КАК данные из ЛЮБОЙ таблицы(хранимой процедуры, квери, таблицы....) показать на форме.
Ну нет примеров нигде

Это не соответствует истине, поскольку в другом своем топике ты согласился, что пример, рекомендованный мной, у тебя РАБОТАЕТ. А это - ни что иное, как клиент-сервер, и он(пример) показывает содержимое ЛЮБОЙ таблицы БД в JTAble. ИМХО, ты просто не даешь себе труда спокойно разобраться в особенностях нового для тебя языка и пытаешься, довольно эмоционально ("Вынь да положь, прошу по-человечески!"), возложить свои проблемы на форум. Увы, презумпция ОБЯЗАННОСТИ форума помогать всем вопрошающим здесь, мягко говоря, не действует. Всё - только на добровольных началах и не обязательно сверхоперативно smile.

Кстати, смотри свой старый топик - там тебе новогодний подарок smile

Автор: sanik 4.1.2005, 19:55
все бы хорошо, теперь jar файл не получается как надо!

сделал его, но он открывет только первую форму Главного меню, а при выборе опции показать форму Работников - ничего не происходит smile

вот как сделан khr.xml


Код

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="khr" default="make-jar">
 
 
 <!-- Uncomment the following property if no tests compilation is needed -->
 <!--
 <property name="skip.tests" value="true"/>
  -->
 
 <!-- Compiler options -->
 
 <property name="compiler.debug" value="on"/>
 <property name="compiler.generate.no.warnings" value="off"/>
 <property name="compiler.args" value=""/>
 <property name="compiler.max.memory" value="128m"/>
 <patternset id="compiler.excluded"/>
 <patternset id="compiler.resources">
   <include name="**/?*.properties"/>
   <include name="**/?*.xml"/>
   <include name="**/?*.gif"/>
   <include name="**/?*.png"/>
   <include name="**/?*.jpeg"/>
   <include name="**/?*.jpg"/>
   <include name="**/?*.html"/>
   <include name="**/?*.dtd"/>
   <include name="**/?*.tld"/>
 </patternset>
 <!-- JDK definitions -->
 
 <property name="jdk.home.java_version_1.5.0" value="C:/Program Files/Java/jdk1.5.0"/>
 <path id="jdk.classpath.java_version_1.5.0">
   <fileset dir="${jdk.home.java_version_1.5.0}">
     <include name="jre/lib/jce.jar"/>
     <include name="jre/lib/charsets.jar"/>
     <include name="jre/lib/javaws.jar"/>
     <include name="jre/lib/deploy.jar"/>
     <include name="jre/lib/plugin.jar"/>
     <include name="jre/lib/jsse.jar"/>
     <include name="jre/lib/rt.jar"/>
     <include name="jre/lib/forms_rt.jar"/>
     <include name="jre/lib/ext/dnsns.jar"/>
     <include name="jre/lib/ext/sunjce_provider.jar"/>
     <include name="jre/lib/ext/sunpkcs11.jar"/>
     <include name="jre/lib/ext/localedata.jar"/>
     <include name="../../../IntelliJ-IDEA-4.5/redist/javac2.jar"/>
   </fileset>
 </path>
 
 <property name="project.jdk.home" value="${jdk.home.java_version_1.5.0}"/>
 <property name="project.jdk.classpath" value="jdk.classpath.java_version_1.5.0"/>
 <!-- Project Libraries -->
 <!-- Global Libraries -->
 
 <import file="${basedir}/module_khr.xml"/>

   <target name="init" description="Build initialization">
       <!-- Perform any build initialization in this target -->
       <property name="bld.dir" value="${module.khr.basedir}/" />
       <property name="lib.dir" value="${module.khr.basedir}/" />
     </target>
     <target name="make-jar" depends="init">
       <jar jarfile="${lib.dir}/khr.jar">
         <fileset dir="${bld.dir}/classes/" includes="**" />
       </jar>
     </target>

 
 <target name="clean" depends="clean.module.khr" description="cleanup all"/>
 
 <target name="make-jar" depends="init, clean, compile.module.khr" description="build all"/>
</project>


в манифесте прописал так:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.1
Created-By: 1.5.0-b64 (Sun Microsystems Inc.)
Main-Class: Main_KHR



я понимаю, что надо тут
<!-- Project Libraries -->
<!-- Global Libraries -->

указать мои библиотеки подкючения к sql server

C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar

и еще одну jlfgr-1_0.jar, которая находится в корневой директории разрабатываемого проекта
C:\Documents and Settings\kuser\IdeaProjects\KHR\jlfgr-1_0.jar

но как это правильно сделать?

Автор: sanik 5.1.2005, 02:38
дело было не в бобине - надо было все мои библиотеки JDBC положить в каталог, где jre установилась \lib\ext\ сюда

все заработало - спаcибо еще раз Kurt!!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)