placer une component sans layout

placer une component sans layout - Java - Programmation

Marsh Posté le 03-05-2005 à 15:02:15    

voila mon probleme:
 
mon interface est une serie de bouton ki doit etre disposer en cercle,mais il est impossible de placer un element uniquement par setLocation()
que faire

Reply

Marsh Posté le 03-05-2005 à 15:02:15   

Reply

Marsh Posté le 03-05-2005 à 15:24:05    

si tu ne veux pas de layout il faut déja l'initialiser à null
ensuite pour placer un element n'importe où, tu peux utiliser la méthode setBounds sur l'élément
puis l'ajouter au component
 
Voir :
http://java.sun.com/j2se/1.4.2/doc [...] nt,%20int)


Message édité par jon301 le 03-05-2005 à 15:24:25
Reply

Marsh Posté le 03-05-2005 à 15:32:43    

jutitilise setbounds, jajoute les jlabel, mais il ne saffiche tjrs pas

Reply

Marsh Posté le 03-05-2005 à 16:14:40    

t'as bien initialisé le layout à null ?

Reply

Marsh Posté le 04-05-2005 à 08:39:21    

tien voila le code

Code :
  1. package gui;
  2. import java.applet.Applet;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.GridBagLayout;
  6. import java.awt.GridLayout;
  7. import java.awt.Image;
  8. import java.awt.Toolkit;
  9. import java.awt.event.WindowEvent;
  10. import java.awt.event.WindowListener;
  11. import java.awt.geom.Point2D;
  12. import javax.swing.JFrame;
  13. import javax.swing.JLabel;
  14. import core.Circle;
  15. /**
  16. * @author Mathieu
  17. */
  18. public class AppletWindow extends JFrame implements WindowListener{
  19. private Circle circle;
  20. private Applet parent;
  21. /**
  22.  * @param a:
  23.  *            the {
  24.  * @link IntranetBrowser } which create this classes
  25.  */
  26. public AppletWindow(Applet a) {
  27.  super();
  28.  this.setSize(Toolkit.getDefaultToolkit().getScreenSize().width/2,Toolkit.getDefaultToolkit().getScreenSize().height/2);
  29.  parent = a;
  30.  this.setTitle("IntranetBrowser" );
  31.  this.updateCircle();
  32.  this.show();
  33.  getContentPane().setLayout(null);
  34. }
  35. /**
  36.  *   
  37.  */
  38. private void updateCircle() {
  39.  int radius;
  40.  if (getHeight() > getWidth())
  41.   radius = (getWidth() / 2) - 50;
  42.  else
  43.   radius = (getHeight() / 2) - 50;
  44.  circle = new Circle(this.getWidth() / 2, this.getHeight() / 2, radius);
  45. }
  46. public void paint(Graphics g) {
  47.  updateCircle();
  48.  g.setColor(Color.LIGHT_GRAY);
  49.  g.fillRect(0,0,this.getWidth(),this.getHeight());
  50.  g.setColor(Color.BLACK);
  51.  JLabel jl=new JLabel("plop" );
  52.  jl.setBounds(10,10,jl.getHeight(),jl.getWidth());
  53.  Point2D.Double[] p = circle.splitCircle(10);
  54.  for (int i = 0; i < p.length; i++) {
  55.   jl=new JLabel("passage:"+i);
  56.   jl.setBounds((int) p[i].x,(int) p[i].y,jl.getHeight(),jl.getWidth());
  57.   this.getContentPane().add(jl);
  58.  }
  59. }

Reply

Marsh Posté le 04-05-2005 à 08:48:07    

meme en placant le getContentPane().setLayout(null) avant le show, ca ne fonctionnent pas

Reply

Marsh Posté le 04-05-2005 à 10:05:31    

autant pour moi le setbounds doit se fair apres le add

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed