Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

JScrollPane

8 réponses
Avatar
remy
bonjour

je s=E8che soit je me tape la s=E9lection a la main
soit je r=E9ussie a mettre plusieurs jtree dans le m=EAme
JScrollPane de manier esth=E9tique sans grand espace entre 2 jtree
une id=E9e peut =EAtre ?

le bute du jeux faire de multi s=E9lection,
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()
{
=09
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
quitte();
}
});
=09
=09
getThis().setSize(1200, 500);
getThis().setLocation(100,100);
getThis().setTitle("Jeux social");
=09
DefaultMutableTreeNode r =3D new DefaultMutableTreeNode("texte") ;
DefaultMutableTreeNode racine =3D new DefaultMutableTreeNode("phrase")=
;
racine.add( new DefaultMutableTreeNode("verbe"));
racine.add( new DefaultMutableTreeNode("article"));
racine.add( new DefaultMutableTreeNode("sujet adjectifs ..."));

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

DefaultMutableTreeNode temps=3Dnew DefaultMutableTreeNode("temps de=20
conjugaison");
temps.add( new DefaultMutableTreeNode("Pr=E9sent"));
temps.add( new DefaultMutableTreeNode("Pass=E9 compos=E9"));
temps.add( new DefaultMutableTreeNode("Imparfait"));
temps.add( new DefaultMutableTreeNode("Plus-que-parfait"));
temps.add( new DefaultMutableTreeNode("Pass=E9 simple"));
temps.add( new DefaultMutableTreeNode("Pass=E9 ant=E9rieur"));
temps.add( new DefaultMutableTreeNode("Futur simple"));
temps.add( new DefaultMutableTreeNode("Futur ant=E9rieur"));
temps.add( new DefaultMutableTreeNode("Subjonctif Pr=E9sent"));
temps.add( new DefaultMutableTreeNode("Subjonctif Pass=E9"));
temps.add( new DefaultMutableTreeNode("Subjonctif Imparfait"));
temps.add( new DefaultMutableTreeNode("Subjonctif Plus-que-parfait"));
temps.add( new DefaultMutableTreeNode("Conditionnel Pr=E9sent"));
temps.add( new DefaultMutableTreeNode("Conditionnel Pass=E9 1=E8re form=
e"));
temps.add( new DefaultMutableTreeNode("Conditionnel Pass=E9 2=E8me form=
e"));
temps.add( new DefaultMutableTreeNode("Imp=E9ratif Pr=E9sent"));
temps.add( new DefaultMutableTreeNode("Imp=E9ratif Pass=E9"));
temps.add( new DefaultMutableTreeNode("Infinitif Pr=E9sent"));
temps.add( new DefaultMutableTreeNode("Participe Pr=E9sent"));
temps.add( new DefaultMutableTreeNode("Participe Pass=E9"));
r.add( racine);
r.add( action);
r.add( temps);

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

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

JSplitPane splitPaneVerticale =3D new=20
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=3Dnew FenetrePrincipale();

=09
}=09



}

merci remy




--=20
http://remyaumeunier.chez-alice.fr/

8 réponses

Avatar
Yliur
Le Fri, 18 Mar 2011 17:19:12 +0100
remy a écrit :

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 ?
Avatar
remy
Yliur a écrit :
Le Fri, 18 Mar 2011 17:19:12 +0100
remy a écrit :

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/
Avatar
Yliur
Le Mon, 21 Mar 2011 16:18:41 +0100
remy a écrit :

Yliur a écrit :
> Le Fri, 18 Mar 2011 17:19:12 +0100
> remy a écrit :
>
>> 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).
Avatar
Yliur
Le Mon, 21 Mar 2011 17:32:03 +0100
remy a écrit :

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...
Avatar
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) ;
Avatar
remy
On 21 mar, 17:37, Yliur wrote:
> 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
Avatar
remy
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/
Avatar
remy
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/