JToolBar



  • hallo,

    ich erstelle JToolbar, dessen Breite wie die Breite des Fenter sein soll

    myToolBar.setBounds(0,30,new Double(dim.getWidth()).intValue(),30);

    aber leider er zeigt sich nur au die Hälfte des Fenster , aber wenn ich das Fenster einblinde un ausblende bekommt die richtige Breite woran kan es liegen ?? un wie kann ich es lösen



  • Vielleicht hilft ein Aufruf von pack() VOR dem ersten setVisible(true)



  • auch nicht mit pack();
    beim start wird das Fenster sehr klein !!!!



  • Poste am besten mal das Codestück das für das alles verantwortlich ist.



  • die Funktion actionPerformed ist deafür verantwortlich

    import javax.swing.;
    import java.awt.
    ;
    import java.awt.event.*;

    public class StartEdit extends JFrame implements ActionListener
    {
    private JMenuBar mBar,mBarIcons;
    private JMenu mFile, mEdit, mView, mTools, mAdvanced, mHelp;
    private LangCode langCode;
    private String selectedTools;
    private String selectedLanguage;
    private JToolBar toolBar;
    private Container contentPane;
    public Dimension dim;
    private JToolBar HTML_toolBar, JSCRIPT_toolBar, XML_toolBar,
    CPLUS_toolBar,JAVA_toolBar;
    ---

    public StartEdit(String selectedLanguage)
    {
    super("PowerEdit");
    // code...

    contentPane=this.getContentPane();
    contentPane.setLayout(null);
    dim=new Dimension(Toolkit.getDefaultToolkit().getScreenSize());
    this.setBounds(0,0,new Double(dim.getWidth()).intValue(),new Double(dim.getHeight()).intValue());

    // code

    }
    //-------------------------------------------------------------------------
    public void actionPerformed(ActionEvent event)
    {
    if(event.getSource().equals(mTools_HTML)){
    contentPane.remove(JSCRIPT_toolBar);
    contentPane.remove(XML_toolBar);
    contentPane.remove(CPLUS_toolBar);
    contentPane.remove(JAVA_toolBar);
    HTML_toolBar = new JToolBar();
    HTML_toolBar.setBorder(BorderFactory.createEtchedBorder());
    HTML_toolBar.setBorderPainted(true);
    HTML_toolBar.setBounds(0,30,new Double(dim.getWidth()).intValue(),30);
    HTML_toolBar.setBackground(Color.red);
    toolBar.setVisible(true);
    contentPane.add(HTML_toolBar);
    }
    if(event.getSource().equals(mTools_JSCRIPT)){
    contentPane.remove(HTML_toolBar);
    contentPane.remove(XML_toolBar);
    contentPane.remove(CPLUS_toolBar);
    contentPane.remove(JAVA_toolBar);
    JSCRIPT_toolBar = new JToolBar();
    JSCRIPT_toolBar.setBorder(BorderFactory.createEtchedBorder());
    JSCRIPT_toolBar.setBorderPainted(true);
    JSCRIPT_toolBar.setBounds(0,30,new Double(dim.getWidth()).intValue(),30);
    JSCRIPT_toolBar.setBackground(Color.green);
    JSCRIPT_toolBar.setVisible(true);
    contentPane.add(JSCRIPT_toolBar);

    }

    }
    //------------------------------------------------------------------------------
    }



  • hallo,

    kann mir jemand helfen und mir sagt wo liegt der Fehler in den Obere Code??

    Der JToolBar lässt sich nicht in richtige grösse anzeigen !!!

    es passiert nur wenn ich das Fenster einblende und nochmal ausblende
    warum ????

    mit der Methode pack() hat nichts gebracht

    danke



  • Wenn man das Alignment einer JToolbar benutzt dann ist sie in der Regel immer so breit (oder hoch) wie das umschließende Fenster. Ich schätze der Aufruf von setBounds(...) ist hier der Übeltäter.



  • danke ich versuche


Anmelden zum Antworten