Exemples fichiers java

macErmite

Membre confirmé
23 Décembre 2005
94
0
51
Bonjour,

Je ne suis pas très bon en programmation et je viens de trouver un exemple de programme en java. Celui-ci est composé en deux parties, utilisant xcode je ne sais pas comment réaliser correctement cette application.

Aujourd'hui j'ai deux applications [DataFileTableModel.java] et [DataFileTable.java] en tant que projet; bien évidement cela ne marche pas car l'un réclame les infos de l'autre et ne les trouve pas (les deux projets sont dans le même répertoire).

Adresse de l'exemple :
http://www.rgagnon.com/javadetails/java-0213.html

Merci pour vôtre aide.

(Remarques en passant : Ces exemples ont été pompés intégralements par un soit disant proffesseur d'informatique d'un lycée en France, intégralement ou presque puisque celui-ci y a rajouté sa touche personnelle. Oui en effet cela plante complétement, personnellement je prefere l'original.)
 
mpergand a dit:
Projet Xcode fait en 2mn chrono (sans ligne de commande :D - private joke)
:p:D bah comme ca fait ton choix tu as 4 minutes de temps de xcode entre tes mains :D:D:D:D:D:D:D


mpergand
mais c'est moins foireux que toi pour le point dat :D:D:D:D:D pas besoin de le bouger :D:D:D:D
et je pense que j'ai été plus vite :D:D:D:D
 
tatouille a dit:
here here

cela suppose que le fichier .dat soit ../.. par rapport app.app

file.dat
dossier1/dossier2/app.app

donc c'est comme c'est posé

Merci pour ta réponse, cependant pour le moment je ne sais lancer les applications qu'avec Xcode. Alors maintenant comment fait-on pour exploiter ta réponse ?
 
fait juste build and go
l'application est construite ds le build/Debug

ps : il faut que tu es installé la sdk complete j'ai mis le setup sur "universal"
sinon édite le target
 
Je crois que je me suis mal exprimé.

La difficulté est d'utiliser Xcode pour metttre en oeuvre l'exemple tiré d'un site internet, car celui-ci est composé en plusieurs parties.

Alors les réponses indiquées par vos soins ne m'apportent pas de réponse. Il y a vos différentes solutions, mais je ne sais pas comment vous avez procédé.

Désolé Tatouille, y a rien dans le dossier build.
 
Salut macErmite,

Deux doigts d'explication quand même ;)

Mon exemple de projet n'est pas une application en bundle comme celui de tatouille, mais c'est un détail.

Ce qu'il faut commendre pour faire une appli java avec xcode, c'est la notion de Main class, dans mon projet xcode tu verra à gauche un fichier nommé Manifest et si tu l'ouvres, tu y verras ceci: Main-Class: DataFileTable
et DataFileTable est justement la Main Class de l'appli car c'est elle qui contient la méthode main.
Lorsque tu crées un projet Java dans Xcode, un fichier java du même nom que le projet va être créé automatiquement, ainsi que le fichier manifest avec la Main class definie en fonction de ce nom.

Naturellement, tu peux changer tout ça part la suite, mais si tu changes le nom de la classe principale, il faut aussi le changer dans le fichier manifest.

Dans le cas d'une appli en bundle comme l'exemple de tatouille, le classe principale est définie dans le fichier info.plist du bundle:
 
mpergand a dit:
Salut macErmite,

Deux doigts d'explication quand même ;)

Mon exemple de projet n'est pas une application en bundle comme celui de tatouille, mais c'est un détail.

Ce qu'il faut commendre pour faire une appli java avec xcode, c'est la notion de Main class, dans mon projet xcode tu verra à gauche un fichier nommé Manifest et si tu l'ouvres, tu y verras ceci: Main-Class: DataFileTable
et DataFileTable est justement la Main Class de l'appli car c'est elle qui contient la méthode main.
Lorsque tu crées un projet Java dans Xcode, un fichier java du même nom que le projet va être créé automatiquement, ainsi que le fichier manifest avec la Main class definie en fonction de ce nom.

Naturellement, tu peux changer tout ça part la suite, mais si tu changes le nom de la classe principale, il faut aussi le changer dans le fichier manifest.

Dans le cas d'une appli en bundle comme l'exemple de tatouille, le classe principale est définie dans le fichier info.plist du bundle:


Comment fait-on pour lancer ton application ?
 
avec le jarlauncher (double clik)
/ ou la commande java par le terminal
comme sous linux mais ce que tu demandes cela s'apprend tout seul
en bidouillant avec XCode en lisant comment on fait un jar, comment on utilise
son terminal quand xcode arrive a ses limites ecetera

faut mettre les mains dedans explorer les menus ecetera
enfin apprendre l'application et on ne peut pas vraiment le faire a ta place

tu vois j'apprend ca en ce moment
http://www.apple.com/fr/shake/

et je n'ai posé aucune question sur un forum
et c'est bien plus compliqué qu'Xcode
 
Un autre truc important à connaitre: le répertoire de travail

Au lancement de l'appli, le répertoire de travail est celui de l'appli, dans notre cas le dossier Debug. C'est donc dans celui-ci que j'ai mis le fichier .dat.

Tu peux bien sûr mettre ce fichier où tu veux, mais il faut changer le chemin en concéquence comme dans l'exemple de tatouille:
panel = new DataFileTable("../../customers.dat");

Maintenant regarde un truc, si avec mon exemple tu déplaces le dossier Debug n'importe où sur ton disque, l'appli trouvera toujours le fichier.

Mais si tu fais la même chose avec l'exemple de tatouille, ça marche plus.

:D :D :D tatouille:D :D :D :D
 
mpergand a dit:
Un autre truc important à connaitre: le répertoire de travail

Au lancement de l'appli, le répertoire de travail est celui de l'appli, dans notre cas le dossier Debug. C'est donc dans celui-ci que j'ai mis le fichier .dat.

Tu peux bien sûr mettre ce fichier où tu veux, mais il faut changer le chemin en concéquence comme dans l'exemple de tatouille:
panel = new DataFileTable("../../customers.dat");

Maintenant regarde un truc, si avec mon exemple tu déplaces le dossier Debug n'importe où sur ton disque, l'appli trouvera toujours le fichier.

Mais si tu fais la même chose avec l'exemple de tatouille, ça marche plus.

:D :D :D tatouille:D :D :D :D
c'est juste que j'ai pas été violent et pas utilisé les packages
resources Bundle et fichu le fichier dans le Resources

j'ai meme failli hacké directe et faire un test sur la présence du
fichier avec un filechooser
ce qui m'aurait pris 2 minutes:zen: mais ce truc est un peu foireux il
ne test pas l'integrité du fichier l'encoding ...
de plus un csv ou VCARD aurait été un peu plus intelligent mais ca sent l'exemple
dev windows , gole quoi :D

NB : je ne fait plus de Java sérieusement depuis 2001
à part des coups de mains ou des petits trucs
:D
 
Bonjour,


Savez-vous comment je pourrais limiter la taille d'affichage du tableau ? :confused:

Car aujourd'hui celui-ci se redimenssionne automatiquement avec la fenêtre JFrame :siffle:

(ne pas confondre le nombre de colonnes ou lignes avec la surface d'affichage)

Merci.

exemples :



puis

 
Je ne vois pas très bien ce qui te gène ou ce que tu veux exactement faire :confused:...

sinon: setMaximumSize / setMinimumSize au choix sur le scroll, la table ou le contentpane de la frame.

En fait , je ne veux pas que la taille d'affichage varie en fonction de celle de la fenêtre principale. Dans la deuxième image, l'on voit que ce tableau s'élargit comme si celui-ci était "collé" aux bords de la fenêtre.
 
Dans ce cas, si tu veux réellement garder le contrôle sur tous les aspects de retaillage, utilise un GridBagLayout. Bien qu'un peu obscur de prime abord, c'est LE layout pour faire tout ce qu'on veut.

Un exemple pour ce que tu veux faire:
Bloc de code:
/*
 * Created on 3 sept. 2006
 */
package org.gibus.macge;

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Demo2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        JPanel content = new JPanel(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.anchor = GridBagConstraints.NORTH;
        gbc.fill = GridBagConstraints.BOTH;
        gbc.weightx = 0;
        gbc.weighty = 0;
        gbc.gridx = 0;
        gbc.gridy = 0;
        JTable tbl = new JTable(new DefaultTableModel(new String[][]{ new String[]{"a1", "a2", "a3", "a4"}}, new String[]{"un", "deux", "trois", "quatre"}));
        JScrollPane sp = new JScrollPane(tbl);
        Dimension d = new Dimension(200, 100);
        sp.setPreferredSize(d);
        sp.setMinimumSize(d);
        sp.setMaximumSize(d);
        content.add(sp, gbc);

        gbc.anchor = GridBagConstraints.NORTH;
        gbc.fill = GridBagConstraints.NONE;
        gbc.weightx = 0;
        gbc.weighty = 0;
        gbc.gridx = 0;
        gbc.gridy = 1;
        content.add(new JButton("clic clic"), gbc);

        gbc.anchor = GridBagConstraints.NORTH;
        gbc.fill = GridBagConstraints.NONE;
        gbc.weightx = 0;
        gbc.weighty = 1;
        gbc.gridx = 0;
        gbc.gridy = 2;
        content.add(new JButton("deuxième bouton"), gbc);

        JFrame frm=new JFrame("démo");
        frm.getContentPane().add(content);
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.pack();
        frm.show();

    }

}
 
bienvenue dans le monde des datagrids

pour ma par je fesais pour etre sur d'avoir de l'aissance sous chaque toolkit
une fenetre avec une grid sous osx il faut constraindre à

10/15 du bord tout au tour comme ca cela t'évite d'allez taper ds le resize
cela te permet aussi de jouer sur cette grib pour chaque toolkit

de meme pour les boutons
tu peux redefenir des class myView(paint object inside)
ce n'est qu'un exemple

c'est la meme histoire que le padding et margin en html
avec des width et des height

tu peints des boites pour placer tes elements

par default 100% du container

:zen: