Avatar billede goldfinger Nybegynder
11. september 2003 - 15:17 Der er 10 kommentarer

Flyvske paneler

Halløjsa!

Jeg har lavet et lille program i Borland Builder 8.0, hvor jeg kan flytte rundt på et panel, og skjule det.
Man kan flytte panelet ved at trække i det.
Problemet er at paneler ryger tilbage til sin orriginale pladsering, når det bliver skjult/vist...

Nogen der kan forklare hvorfor? Er det pga. XY-layoutet? (Som er med i Buildere).

Hvad kan man gøre for at fixe det?

Tak!

----
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;

public class Applet1 extends Applet {
  private boolean isStandalone = false;
  JPanel jPanel1 = new JPanel();
  XYLayout xYLayout1 = new XYLayout();
  boolean vis=true;
  JButton jButton1 = new JButton();
  //Get a parameter value
  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }

  //Construct the applet
  public Applet1() {
  }
  //Initialize the applet
  public void init() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception {
    this.setLayout(xYLayout1);
    jPanel1.setBackground(Color.red);
    jPanel1.addMouseMotionListener(new Applet1_jPanel1_mouseMotionAdapter(this));
    jButton1.setText("jButton1");
    jButton1.addActionListener(new Applet1_jButton1_actionAdapter(this));
    this.add(jPanel1, new XYConstraints(153, 19, 84, 162));
    this.add(jButton1,  new XYConstraints(155, 198, 74, 71));
  }
  //Get Applet information
  public String getAppletInfo() {
    return "Applet Information";
  }
  //Get parameter info
  public String[][] getParameterInfo() {
    return null;
  }

  void jButton1_actionPerformed(ActionEvent e) {
    vis=!vis;
    jPanel1.setVisible(vis);
  }

  void jPanel1_mouseDragged(MouseEvent e) {
    jPanel1.setLocation(e.getX()+jPanel1.getX(), e.getY()+jPanel1.getY());
  }
}

class Applet1_jButton1_actionAdapter implements java.awt.event.ActionListener {
  Applet1 adaptee;

  Applet1_jButton1_actionAdapter(Applet1 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}

class Applet1_jPanel1_mouseMotionAdapter extends java.awt.event.MouseMotionAdapter {
  Applet1 adaptee;

  Applet1_jPanel1_mouseMotionAdapter(Applet1 adaptee) {
    this.adaptee = adaptee;
  }
  public void mouseDragged(MouseEvent e) {
    adaptee.jPanel1_mouseDragged(e);
  }
}
Avatar billede simonvalter Praktikant
11. september 2003 - 15:55 #1
jeg har taget din kode og pastet den ind i jbuilder9 og det virker som det skal her
Avatar billede arne_v Ekspert
11. september 2003 - 17:31 #2
Jeg kan altså godt genskabe problemet i JB9.

Click på button og vupti så er panel tilbage.
Avatar billede simonvalter Praktikant
11. september 2003 - 17:36 #3
ja åbenbart .. hvis den bliver vist i browser men i applet viewer virker den fint.
Avatar billede simonvalter Praktikant
11. september 2003 - 17:56 #4
eller .. i jbuilders browser virker den ikke
i ie og appletviewer virker den fint
Avatar billede pblv Nybegynder
12. september 2003 - 09:50 #5
Kan man få det til at virke i Explorer?
Avatar billede simonvalter Praktikant
12. september 2003 - 15:17 #6
http://gbit.dk/tester/Applet1.html
ser da ud til at virke fint her
Avatar billede simonvalter Praktikant
31. maj 2004 - 17:28 #7
fandt du ud af det?
Avatar billede goldfinger Nybegynder
01. juni 2004 - 19:52 #8
Ja.
FYI er det borlands xylayout-klasse der laver knuderne... Det layout vi endte med at bruge hedder null-layout, hvilket også kan placere komponenter vha. x/y-koordinater...

altså:
this.setLayout(null);
istedet for:
this.setLayout(xYLayout1);
Avatar billede goldfinger Nybegynder
01. juni 2004 - 19:53 #9
denne tråd bør lukkes, da den er et halvt år gammel... vil en moderator gøre det plz?
Avatar billede simonvalter Praktikant
01. juni 2004 - 23:50 #10
du skal bare acceptere dit eget svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester