IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

JInternalFrame en cercle


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 78
    Par défaut JInternalFrame en cercle
    Bonjour,
    Je souhaite avoir dans un JDesktopPane des fenetres de type JInternalFrame mais dont l'apparence n'est pas rectangulaire mais ronde.
    Savez-vous si il existe un composant java qui aurait une telle apparence ?
    nb : j'ai bien la solution de le créer moi-même mais je ne crois pas être capable d'écrire un équivalent de JInternalFrame avec toutes les méthodes (paint ...) et évenements associés à re-écrire. Merci d'avance pour vos pistes

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    c'est une quesiton une peu con, mais t'a essayé de surchargé paintComponent? Contrairement au Frame pure qui elles sont dessinées en partie par l'OS, les JInternalFrame se dessinent comme des grande, donc ca devrais pas etre trop galère à customizer. Tu peux peut etre regarder du coté du look and feel "substance" qui permet customizer tous les composant.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 78
    Par défaut
    Ta question n'est pas du tout "un peu con" et j'y ai pensé mais je me voyais mal recoder les méthodes de paint (par manque d'expérience et par manque d'intérêt aussi) et j'ai donc plutôt cherché si il existait des composants swing ou des look and feel que j'aurais pu re-utiliser (leur boulot étant très certainement bien meilleur que celui que je pourrais faire).
    Je n'avais pas trouvé le laf "substance", je vais donc y jeter un coup d'oeil. Je vais aussi regarder le bout de code mis dans le post "Personnaliser sa fenêtre entièrement !" où une personne a mis un exemple de JFrame avec un paintComponent personnalisé. Merci

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Citation Envoyé par Ghorin Voir le message
    Je vais aussi regarder le bout de code mis dans le post "Personnaliser sa fenêtre entièrement !" où une personne a mis un exemple de JFrame avec un paintComponent personnalisé. Merci
    Je peux te dire tout de suite qu'il ne marchera pas pour un JInternalFrame, car une JInternaleFrame est lightweight et n'a aucun rapport avec le windows manager ou l'os. Surcharger paintComponent est facile, tu commence par faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void paintComponent(Graphics g){}
    Et tu regarde ce que donne le JInternalFrame quand la partie component ne se dessine pas. Après, tu avise

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 78
    Par défaut
    Je viens de tester de redéfinir le paintComponent mais ça ne change rien : graphiquement le résultat est le même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public class FenetreSceneEtre extends JInternalFrame {
    	private	SceneEtre	sceneEtre;
     
    	public FenetreSceneEtre(SceneEtre sceneEtre) {
    		super(sceneEtre.getEtre().getNom(), true, true, true, true);
    		this.sceneEtre		= sceneEtre;
    		this.afficheInfos();
    		this.setVisible(true);
    	}
    	private void afficheInfos() {
    		JPanel panel = new JPanel();
    		JLabel lbPhoto = new JLabel(sceneEtre.getPhoto());
    		panel.add(lbPhoto);
    		this.setContentPane(panel);
    	}
    	public void paintComponents(Graphics g) {}
    	public void paintComponent(Graphics g) {}
    }
    => la fenêtre est toujours affichée avec son border, son fond, sa barre de titre et son jlabel à l'intérieur. J'ai même rajouté le bout de code de l'autre post qui redéfinit le paintComponent en dessiant un gros smiley jaune et si je le met dans le paintComponent de ma classe ça n'est pas affiché, ça l'est par contre si je le met dans paint(...). Ce n'est donc pas le paintComponent qui dessine la fenetre d'un jinternalframe ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 78
    Par défaut
    Je viens de tester en surchargeant le paint (et non le paintComponent) et j'arrive à obtenir ce que je cherche : une ijinternalframe en cercle et dans lequel je dessine un composant (un jpanel qui contient un jlabel). C'est donc un début :-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void paint(Graphics g) {
    	if (g instanceof Graphics2D) {
    		Graphics2D g2d = (Graphics2D) g;
    		// Activation de l'anti-aliasing !
    		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    	}
    	g.setColor(new Color(10, 20, 30);
    	g.fillOval(0, 0, 100, 100);
     
    	if(this.panel!=null)
    		this.panel.paintComponents(g);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lignes, cercles
    Par Francky033 dans le forum DirectX
    Réponses: 1
    Dernier message: 13/07/2003, 23h18
  2. [JInternalFrame] Modale ?
    Par Aminos dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 04/03/2003, 11h38
  3. [VB6] [Graphisme] Tracer un cercle avec pset
    Par bleuerouge dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/12/2002, 18h12
  4. [VB6] [Graphisme] Arc de cercle dans un picturebox
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/11/2002, 18h55
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo