JScrollPane

Le
remy
bonjour

je sèche soit je me tape la sélection a la main
soit je réussie a mettre plusieurs jtree dans le même
JScrollPane de manier esthétique sans grand espace entre 2 jtree
une idée peut être ?

le bute du jeux faire de multi sélection,
une par sous ensemble

le code avec les 2 solutions



package ihm;

import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import javax.swing.tree.*;
import java.awt.*;




public class FenetrePrincipale extends JFrame
{
public FenetrePrincipale() throws IOException
{
super();
initialize();
}
private void initialize()
{

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
quitte();
}
});


getThis().setSize(1200, 500);
getThis().setLocation(100,100);
getThis().setTitle("Jeux social");

DefaultMutableTreeNode r = new DefaultMutableTreeNode("texte") ;
DefaultMutableTreeNode racine = new DefaultMutableTreeNode("phrase")=
;
racine.add( new DefaultMutableTreeNode("verbe"));
racine.add( new DefaultMutableTreeNode("article"));
racine.add( new DefaultMutableTreeNode("sujet adjectifs "));

DefaultMutableTreeNode action=new DefaultMutableTreeNode("action");
action.add( new DefaultMutableTreeNode("acorde le reste avec les
articles"));
action.add( new DefaultMutableTreeNode("verifier l'orthographe"));
racine.add( action);

DefaultMutableTreeNode temps=new DefaultMutableTreeNode("temps de
conjugaison");
temps.add( new DefaultMutableTreeNode("Présent"));
temps.add( new DefaultMutableTreeNode("Passé composé"));
temps.add( new DefaultMutableTreeNode("Imparfait"));
temps.add( new DefaultMutableTreeNode("Plus-que-parfait"));
temps.add( new DefaultMutableTreeNode("Passé simple"));
temps.add( new DefaultMutableTreeNode("Passé antérieur"));
temps.add( new DefaultMutableTreeNode("Futur simple"));
temps.add( new DefaultMutableTreeNode("Futur antérieur"));
temps.add( new DefaultMutableTreeNode("Subjonctif Présent"));
temps.add( new DefaultMutableTreeNode("Subjonctif Passé"));
temps.add( new DefaultMutableTreeNode("Subjonctif Imparfait"));
temps.add( new DefaultMutableTreeNode("Subjonctif Plus-que-parfait"));
temps.add( new DefaultMutableTreeNode("Conditionnel Présent"));
temps.add( new DefaultMutableTreeNode("Conditionnel Passé 1ère form=
e"));
temps.add( new DefaultMutableTreeNode("Conditionnel Passé 2ème form=
e"));
temps.add( new DefaultMutableTreeNode("Impératif Présent"));
temps.add( new DefaultMutableTreeNode("Impératif Passé"));
temps.add( new DefaultMutableTreeNode("Infinitif Présent"));
temps.add( new DefaultMutableTreeNode("Participe Présent"));
temps.add( new DefaultMutableTreeNode("Participe Passé"));
r.add( racine);
r.add( action);
r.add( temps);

JTree tree = new JTree(r );
JTree tree1 = new JTree(racine );
JTree tree2 = new JTree(action );
JTree tree3 = new JTree(temps );
JPanel p=new JPanel();
p.setLayout(new GridLayout(4,1));
p.add(tree);
p.add(tree1);
p.add(tree2);
p.add(tree3);
JScrollPane gauche = new JScrollPane(p);
JTabbedPane droit= new JTabbedPane() ;
droit.add(new JTextArea() ,"texte");
droit.add(new JPanel(),"");
droit.add(new JPanel(),"");
droit.add(new JPanel(),"");

JPanel bas = new JPanel() ;

JSplitPane splitPaneHorizontal = new
JSplitPane(JSplitPane.HORIZONTAL_SPLIT, gauche, droit);
splitPaneHorizontal.setContinuousLayout(true);
splitPaneHorizontal.setOneTouchExpandable(true);
splitPaneHorizontal.setDividerLocation(300);

JSplitPane splitPaneVerticale = new
JSplitPane(JSplitPane.VERTICAL_SPLIT , splitPaneHorizontal, bas);
splitPaneVerticale.setContinuousLayout(true);
splitPaneVerticale.setOneTouchExpandable(true);
splitPaneVerticale.setDividerLocation(350);

getThis().getContentPane().add(splitPaneVerticale, BorderLayout.CENTER)=
;
getThis().setVisible(true);
}
public void quitte()
{
System.exit(0);
}
public FenetrePrincipale getThis() {
return this;
}



}

*******************

import java.io.IOException;
//import ihm.*;


public class Main {

public static void main(String[] args) throws IOException
{
FenetrePrincipale f=new FenetrePrincipale();


}



}

merci remy




--
http://remyaumeunier.chez-alice.fr/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yliur
Le #23221841
Le Fri, 18 Mar 2011 17:19:12 +0100
remy
bonjour

je sèche soit je me tape la sélection a la main
soit je réussie a mettre plusieurs jtree dans le même
JScrollPane de manier esthétique sans grand espace entre 2 jtree
une idée peut être ?

le bute du jeux faire de multi sélection,
une par sous ensemble



Tu peux détailler l'objectif ?
remy
Le #23222241
Yliur a écrit :
Le Fri, 18 Mar 2011 17:19:12 +0100
remy
bonjour

je sèche soit je me tape la sélection a la main
soit je réussie a mettre plusieurs jtree dans le même
JScrollPane de manier esthétique sans grand espace entre 2 jtree
une idée peut être ?

le bute du jeux faire de multi sélection,
une par sous ensemble



Tu peux détailler l'objectif ?




en gros remplace des menus classique par un ou des jtree
donc soit je code un obj sélection a la main
avec une seul sélection possible par sous branche ou sous ensemble mais
un seul jtree

http://cjoint.com/data1/1dvqnx5BzNE.htm

une seul sélection possible pour le sous ensemble
phrase /action/temps de conjugaison mais un seul jtree


ou je met plusieurs jtree mais si je fais cela j'ai un énorme espace
entre les différents jtree

http://cjoint.com/data1/1dvqpTuuvEo.htm

2 jtree différent action et phrase le troisièmement et encore plus ba s


http://cjoint.com/data1/1dvqrPT4Vs.htm


merci pour toute piste même partiel
remy








--
http://remyaumeunier.chez-alice.fr/
Yliur
Le #23222231
Le Mon, 21 Mar 2011 16:18:41 +0100
remy
Yliur a écrit :
> Le Fri, 18 Mar 2011 17:19:12 +0100
> remy >
>> bonjour
>>
>> je sèche soit je me tape la sélection a la main
>> soit je réussie a mettre plusieurs jtree dans le même
>> JScrollPane de manier esthétique sans grand espace entre 2 jtree
>> une idée peut être ?
>>
>> le bute du jeux faire de multi sélection,
>> une par sous ensemble
>
> Tu peux détailler l'objectif ?
>

en gros remplace des menus classique par un ou des jtree
donc soit je code un obj sélection a la main
avec une seul sélection possible par sous branche ou sous ensemble
mais un seul jtree

http://cjoint.com/data1/1dvqnx5BzNE.htm

une seul sélection possible pour le sous ensemble
phrase /action/temps de conjugaison mais un seul jtree


ou je met plusieurs jtree mais si je fais cela j'ai un énorme espace
entre les différents jtree

http://cjoint.com/data1/1dvqpTuuvEo.htm

2 jtree différent action et phrase le troisièmement et encore plus bas


http://cjoint.com/data1/1dvqrPT4Vs.htm


merci pour toute piste même partiel
remy



Quand tu veux comprendre ce qui se passe avec les panneaux Swing, mets
des bordures autour, éventuellement de couleurs différentes.

Dans ton JScrollPane il ne faut pas mettre deux panneaux je crois : il
faut en mettre un qui contient les deux autres. Et celui-ci est
organisé comme tu veux (Flowlayout, ... ; regarde la classe Box par
exemple).
Yliur
Le #23222411
Le Mon, 21 Mar 2011 17:32:03 +0100
remy
remy a écrit :

bon bref la solution la plus élégante à mon avis

http://download.oracle.com/javase/7/docs/api/javax/swing/event/TreeSelectionListener.html
voir aussi
http://download.oracle.com/javase/tutorial/uiswing/events/treeselectionlistener.html


remy



?
Je ne vois pas le rapport avec l'espace entre les arbres...
Yliur
Le #23222401
il n'y a qu'un seule panneaux

JPanel p=new JPanel();
p.setLayout(new GridLayout(4,1));
p.add(tree);
p.add(tree1);
p.add(tree2);
p.add(tree3);
JScrollPane gauche = new JScrollPane(p);

je code fonction en principe

remy



Essaie d'utiliser Box plutôt qu'un panneau dont les composants son
disposés avec GridLayout. Ça devrait être quelque chose comme ça :
JPanel p = new Box (BoxLayout.Y_AXIS) ;
remy
Le #23222581
On 21 mar, 17:37, Yliur
> il n'y a qu'un seule panneaux

> JPanel p=new JPanel();
>          p.setLayout(new GridLayout(4,1));
>          p.add(tree);
>          p.add(tree1);
>          p.add(tree2);
>          p.add(tree3);
>          JScrollPane gauche = new JScrollPane(p);

> je code fonction en principe

> remy

Essaie d'utiliser Box plut t qu'un panneau dont les composants son
dispos s avec GridLayout. a devrait tre quelque chose comme a :
  JPanel p = new Box (BoxLayout.Y_AXIS) ;



ha il y a du mieux
java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.7)
(6b20-1.9.7-0ubuntu1~10.04.1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)

//Box p = new Box (BoxLayout.Y_AXIS) ;
Box p=Box.createVerticalBox();

p.add(tree);
p.add(tree1);
p.add(tree2);
p.add(tree3);
JScrollPane gauche = new JScrollPane(p);

cela donne
http://cjoint.com/data1/1dvsZ5qqdd6.htm
il y a encore un petit problème voir texte du jtree
je regarde demain merci pour la piste

remy
remy
Le #23224371
bon bref une solution que je ne retiendrais pas
arbre plier et déplier

http://cjoint.com/data1/1dwoiSivn5F.htm
http://cjoint.com/data1/1dwojrskIFm.htm


je vais prendre un seul arbre

dans tout les cas merci
remy


...
r.add( racine);
r.add( action);
r.add( temps);

JTree tree = new JTree(r ){

public Dimension getMinimumSize(){
return new Dimension(3,5);
}
};
JTree tree1 = new JTree(racine ){

public Dimension getMinimumSize(){
return new Dimension(10,5);
}
};
JTree tree2 = new JTree(action ){

public Dimension getMinimumSize(){
return new Dimension(10,5);
}
};
JTree tree3 = new JTree(temps ){

public Dimension getMinimumSize(){
return new Dimension(10,5);
}
};
Box p=Box.createVerticalBox();


p.add(tree);
p.add(tree1);
p.add(tree2);
p.add(tree3);
JScrollPane gauche = new JScrollPane(p);

...

--
http://remyaumeunier.chez-alice.fr/
remy
Le #23244821
donc une solution parmi d'autre pour ceux que cela intéresse
histoire de remplacer des menus classique par un arbre


création d'un arbre



DefaultMutableTreeNode racine = new DefaultMutableTreeNode("phrase") ;
racine.add( new DefaultMutableTreeNode("verbe"));
racine.add( new DefaultMutableTreeNode("article"));
racine.add( new DefaultMutableTreeNode("sujet adjectifs ..."));

DefaultMutableTreeNode action=new DefaultMutableTreeNode("action");
action.add( new DefaultMutableTreeNode("acorde le reste avec les
articles"));
action.add( new DefaultMutableTreeNode("verifier l'orthographe"));
racine.add( action);

DefaultMutableTreeNode temps=new DefaultMutableTreeNode("temps de
conjugaison");
temps.add( new DefaultMutableTreeNode("Présent"));
temps.add( new DefaultMutableTreeNode("Passé composé"));
temps.add( new DefaultMutableTreeNode("Imparfait"));
temps.add( new DefaultMutableTreeNode("Plus-que-parfait"));
temps.add( new DefaultMutableTreeNode("Passé simple"));
temps.add( new DefaultMutableTreeNode("Passé antérieur"));
temps.add( new DefaultMutableTreeNode("Futur simple"));
temps.add( new DefaultMutableTreeNode("Futur antérieur"));
temps.add( new DefaultMutableTreeNode("Subjonctif Présent"));
temps.add( new DefaultMutableTreeNode("Subjonctif Passé"));
temps.add( new DefaultMutableTreeNode("Subjonctif Imparfait"));
temps.add( new DefaultMutableTreeNode("Subjonctif Plus-que-parfait"));
temps.add( new DefaultMutableTreeNode("Conditionnel Présent"));
temps.add( new DefaultMutableTreeNode("Conditionnel Passé 1ère form e"));
temps.add( new DefaultMutableTreeNode("Conditionnel Passé 2ème form e"));
temps.add( new DefaultMutableTreeNode("Impératif Présent"));
temps.add( new DefaultMutableTreeNode("Impératif Passé"));
temps.add( new DefaultMutableTreeNode("Infinitif Présent"));
temps.add( new DefaultMutableTreeNode("Participe Présent"));
temps.add( new DefaultMutableTreeNode("Participe Passé"));

DefaultMutableTreeNode menu = new DefaultMutableTreeNode("Menu") ;
menu.add( racine);
menu.add( action);
menu.add( temps);
MenuSelectionModel selectionMenu =new MenuSelectionModel();

JTree tree = new JTree(menu);
tree.addTreeSelectionListener(selectionMenu);
DefaultTreeSelectionModel model = new DefaultTreeSelectionModel();
model.setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION) ;
tree.setSelectionModel(model);

JScrollPane gauche = new JScrollPane(tree);



gestion du bouzin


import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;





public class MenuSelectionModel implements TreeSelectionListener
{
String menu1,menu2,menu3;
TreePath tabMenu[];

public MenuSelectionModel()
{
tabMenu=new TreePath[3];
menu1=new String ("phrase");
menu2=new String("action");
menu3=new String("temps de conjugaison");

}
public void valueChanged(TreeSelectionEvent e)
{
TreePath t=e.getNewLeadSelectionPath();
JTree tree=(JTree)e.getSource();
tabMenu­dSelection(t);
tree.getSelectionModel().addSelectionPaths(tabMenu);
}
private int index(String clee)
{
if (clee.equalsIgnoreCase(menu1)) return 1;
if (clee.equalsIgnoreCase(menu2)) return 2;
if (clee.equalsIgnoreCase(menu3)) return 3;
return -1;

}
private TreePath[] addSelection(TreePath menu)
{
TreePath[] tmpTab;
int val=-1;
if(menu.getPathCount()>1)
{
val=index(menu.getPathComponent(1).toString());
}
if(val==1) tabMenu[0]=menu;
if(val==2) tabMenu[1]=menu;
if(val==3) tabMenu[2]=menu;


return tabMenu;
}



}



remy
--
http://remyaumeunier.chez-alice.fr/
Publicité
Poster une réponse
Anonyme