Link to home
Start Free TrialLog in
Avatar of Samooramad
Samooramad

asked on

desktop hieght

Hi experts,
I have a desktop with internal frames, a menu bar and a toolbar. The internal frame hieght is incremented every time a button is pressed and a label added to it but I want it to stop growing in hieght once it reaches the limits of the desktop. How is this done?
thanks
Avatar of girionis
girionis
Flag of Greece image

Can you not use the getHeight() method?
ASKER CERTIFIED SOLUTION
Avatar of girionis
girionis
Flag of Greece image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Samooramad
Samooramad

ASKER

gethieght of what?
oh ok.. I will try that
no it didnt work. It keeps going down and disapears behind the toolbar and keeps going.
could you include a working example?
Can you post some sampel code (a small compilable example) so I can try that and see what's going on?
can u post ur code??

SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
sorry my reply comes late,I was having PC problems before..sure I will post it
Im still having problems.. I will post the code.
Javatm, your code was great but I still dont know how to apply it to the desktop boundry
package hospital;
import java.util.ArrayList;
import java.util.List;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import javax.swing.*;


public class m extends JFrame {

  JPanel p1 = new JPanel();
  JPanel p2 = new JPanel();
  JPanel bottom = new JPanel();
  JScrollPane sp = new JScrollPane();

  JButton d =new JButton("Open List");
  JPanel contentPane;

  JMenu File = new JMenu();

  JMenuItem FileExit = new JMenuItem("Exit");
  Border border1;
  Border border2;

//layouts
  BorderLayout borderLayout1 = new BorderLayout();
  BorderLayout borderLayout2 = new BorderLayout();
  BorderLayout borderLayout3 = new BorderLayout();

  JDesktopPane desktop = new JDesktopPane();
  JMenuBar jMenuBar1 = new JMenuBar();
  JToolBar jToolBar1 = new JToolBar();

  //toolBar buttons
  JButton help=new JButton("Help");

  //panels
   JPanel eastPanel = new JPanel();
  JPanel centerPanel = new JPanel();

  //layouts
  BorderLayout docborder = new BorderLayout();
 
//Interface
    private JButton addName;
    private JPanel bigpanel;
    private JPanel southPanel;
    private JPanel leftpanel;
    private JScrollPane theScrollPane;
    private JTextField theTextField;

    doctor[] allDoctors;//original

   int nrOfDsAdded = 0;//original

   public  boolean frameOpened = false;


///////////////////////////////////////////////
///Constructor
  public m() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
///////////////////////////////////////////////////////
///Component initialization
private void jbInit() throws Exception  {
      contentPane = (JPanel) this.getContentPane();
    border1 = BorderFactory.createLineBorder(Color.gray,2);
    border2 = BorderFactory.createLineBorder(Color.black,2);
    this.setSize(new Dimension(500, 400));
    this.setDefaultCloseOperation(3);
///////////////////////////////////////////////
    allDoctors = new doctor[100];
  ///////////////////////////////////////////////
//set up menu items and their actions

    JPopupMenu.setDefaultLightWeightPopupEnabled(false);

    addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

    File.setText("File");
    File.setMnemonic(KeyEvent.VK_F);

   FileExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
    FileExit.addActionListener(new ActionListener()  {
      public void actionPerformed(ActionEvent e) {
        FileExit_actionPerformed(e);
      }
     });

//////////////////////////////////////////
//toolbar buttons

  d.addActionListener( new ActionListener()
 { public void actionPerformed(ActionEvent e) {
       d_actionPerformed(e);
     }
 });


/////////////////////////////////

contentPane.setLayout(borderLayout1);
desktop.setLayout(borderLayout2);

//add components of menu, desktop and toolbar

File.add(FileExit);
jMenuBar1.add(File);
jToolBar1.add(d);
setJMenuBar(jMenuBar1);
desktop.add(eastPanel, BorderLayout.EAST);
desktop.add(centerPanel, BorderLayout.CENTER);
contentPane.add(desktop, BorderLayout.CENTER);
contentPane.add(jToolBar1, BorderLayout.SOUTH);

}//jb init
///////////////////////////////////////////
 private void exitForm(WindowEvent evt)
 {
 System.exit(0);
}//end

/////////////////////////////////////////////
//File | Exit action performed
public void FileExit_actionPerformed(ActionEvent e)
{
  System.exit(0);
}//end

/////////////////////////////////////

  public void d_actionPerformed(ActionEvent e)
  {
  JInternalFrame dFrame = new JInternalFrame(" My List",false,false,true,true);


 if (frameOpened == false) {
   centerPanel.add(dFrame, BorderLayout.CENTER);
   dFrame.setBackground(Color.white);
   dFrame.setVisible(true);
   addFrameLayout(dFrame);
   dFrame.pack();

   frameOpened = true;
 }//if

 else
   dFrame.moveToFront();

 }

////////////////////////////////////
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      FileExit_actionPerformed(null);
    }
  }

//////////////////////////////////
private void addFrameLayout(final JInternalFrame f)
  {
    theScrollPane = new JScrollPane();
    bigpanel = new JPanel();//carrier
    leftpanel = new JPanel();//for names
    southPanel = new JPanel();//for button
    theTextField = new JTextField();
    addName = new JButton();

    leftpanel.setLayout(new GridBagLayout());
    bigpanel.setLayout(new FlowLayout(FlowLayout.LEFT));
    bigpanel.add(leftpanel);
    theScrollPane.setViewportView(bigpanel);

    f.getContentPane().add(theScrollPane,BorderLayout.CENTER);
    theTextField.setPreferredSize(new Dimension(150, 20));

     theTextField.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent evt) {
       addDActionPerformed(evt);

       if(f.getHeight() < (desktop.getHeight()-jToolBar1.getHeight()-jMenuBar1.getHeight()-200))////this is what I tried but did not work!!!!!
       {
         f.setSize(f.getWidth(), f.getHeight() + 12);
       }
     }
     });

     addName.setText("Add name");
     addName.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent evt) {

        addDActionPerformed(evt);
        int h =desktop.getHeight();
        System.out.println("desktop hieght"+h);
        int t = jToolBar1.getHeight();
        System.out.println("toolbar hieght"+t);
        int m = jMenuBar1.getHeight();
        System.out.println("menubar hieght"+m);

       f.setSize(f.getWidth(),f.getHeight()+ 12);//it should be applied here too!!!!
     }
     });

    southPanel.add(theTextField);
    southPanel.add(addName);

    f.setFrameIcon(null);
    f.getContentPane().add(southPanel,BorderLayout.SOUTH);
  }

////////////////////////////////////////////////////////////
    private void addDActionPerformed(ActionEvent evt)
   {

     JLabel label = new JLabel(theTextField.getText());
     GridBagConstraints gridBagConstraints =new GridBagConstraints();

     allDoctors[nrOfDsAdded] = new doctor();
     allDoctors[nrOfDsAdded].setName(theTextField.getText());

     label.setText(theTextField.getText());
     theTextField.setText("");

     gridBagConstraints.gridx = 0;
     gridBagConstraints.gridy = nrOfDsAdded;
     gridBagConstraints.anchor = GridBagConstraints.WEST;

     nrOfDsAdded++;

     leftpanel.add(label, gridBagConstraints);

     leftpanel.revalidate();
     leftpanel.repaint();

   }

///////////////////////////////////////////////////////
   public void main( String[] args )
     {
       m frame = new m() ;
       frame.show() ;
     }
//////////////////////////////////////////////////////

}//hframe

there might be some mistakes due to cut and paste but you get the idea from this code
thank you
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
that worked.
Thank you