Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Not able to see menu items ??

Status
Not open for further replies.

db2sachin

Programmer
Jun 9, 2003
24
0
0
AU
I'm giving the whole prog I had written for showing a menu item. The prog is opening the frame with menubar on it containing 2 menus namely 'File' & 'Edit'. But when I click on 'File' nothing happens. Actually I want to see the menuitems 'Cut' & 'Copy' on my file menu. Pls let me know if something is wrong with the prog or what needs to be done to see those menu items ?

-------------------------------------------------------
package testproject;

import java.awt.event.*;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class TestClient extends JFrame implements ActionListener, ItemListener{
private JPanel ivjPanel = null;
private JMenuBar ivjMenuBar = null;
private JMenu ivjMenu1 = null;
private JMenu ivjMenu2 = null;
private JMenuItem ivjMenuItem1 = null;
private JMenuItem ivjMenuItem2 = null;
private JPopupMenu ivjPopupMenu = null;
public TestClient() {
super(&quot;Test Frame&quot;);
this.initialize();
}
public void initialize() {
this.getContentPane().setLayout(null);
this.getContentPane().add(getIvjPanel(), getIvjPanel().getName());
this.getContentPane().setBackground(Color.GRAY);
this.getContentPane().add(getIvjMenuBar(), getIvjMenuBar().getName());
this.setSize(400,250);
}

private JMenuBar getIvjMenuBar() {
if (ivjMenuBar == null) {
ivjMenuBar = new JMenuBar();
// ivjMenuBar.setLayout(null);
ivjMenuBar.setBounds(20, 0, 350, 20);
ivjMenuBar.setName(&quot;ivjMenuBar&quot;);
ivjMenuBar.add(getIvjMenu1(), getIvjMenu1().getName());
ivjMenuBar.add(getIvjMenu2(), getIvjMenu2().getName());
ivjMenuBar.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));
}
return ivjMenuBar;
}

private JPopupMenu getIvjPopupMenu() {
if(ivjPopupMenu == null) {
ivjPopupMenu = new JPopupMenu();
ivjPopupMenu.setBounds(65,0,60,20);
ivjPopupMenu.add(getIvjMenuItem1(), getIvjMenuItem1().getName());
ivjPopupMenu.add(getIvjMenuItem2(), getIvjMenuItem2().getName());
}
return ivjPopupMenu;
}

private JMenu getIvjMenu1() {
if(ivjMenu1 == null) {
ivjMenu1 = new JMenu(&quot;File&quot;);
ivjMenu1.setBounds(0,0,60,20);
ivjMenu1.add(getIvjMenuItem1(), getIvjMenuItem1().getName());
ivjMenu1.add(getIvjMenuItem2(), getIvjMenuItem2().getName());
ivjMenu1.addActionListener(this);
}
return ivjMenu1;
}

private JMenu getIvjMenu2() {
if(ivjMenu2 == null) {
ivjMenu2 = new JMenu(&quot;Edit&quot;);
ivjMenu2.setBounds(60,0,60,20);
ivjMenu2.addActionListener(this);
}
return ivjMenu2;
}

private JMenuItem getIvjMenuItem1() {
if(ivjMenuItem1 == null) {
ivjMenuItem1 = new JMenuItem(&quot;Cut&quot;);
ivjMenuItem1.addActionListener(this);
ivjMenuItem1.addItemListener(this);
}
return ivjMenuItem1;
}

private JMenuItem getIvjMenuItem2() {
if(ivjMenuItem2 == null) {
ivjMenuItem2 = new JMenuItem(&quot;Copy&quot;);
ivjMenuItem2.addActionListener(this);
ivjMenuItem1.addItemListener(this);
}
return ivjMenuItem2;
}

private JPanel getIvjPanel() {
if (ivjPanel == null) {
ivjPanel = new JPanel();
ivjPanel.setLayout(null);
ivjPanel.setToolTipText(&quot;Test Panel&quot;);
ivjPanel.setBounds(20, 20, 350, 200);
ivjPanel.setName(&quot;ivjPanel&quot;);
ivjPanel.setBackground(Color.LIGHT_GRAY);
ivjPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));
}
return ivjPanel;
}

public void actionPerformed(ActionEvent e) {
System.out.println(&quot;Inside Action Event&quot;);
if (e.getSource() == this.ivjMenu1) {
System.out.println(&quot;Cought the Action Event: &quot;+ ivjMenu1.getText());
validate();
}
if (e.getSource() == this.ivjMenuItem1) {
System.out.println(&quot;Cought the Action Event: &quot;+ ivjMenuItem1.getText());
validate();
}
}

public void itemStateChanged(ItemEvent e){
if (e.getSource() == this.ivjMenuItem1) {
System.out.println(&quot;Cought the Action Event: &quot;+ ivjMenuItem1.getText());
validate();
}
}

public static void main(String[] args) {
TestClient testClient1 = new TestClient();
testClient1.setVisible(true);
}

}

 
I would advise you to read a (recent) Swing book. I post your code with a lot of lines commented out. The first thing I did was
&quot;this.setJMenuBar(getIvjMenuBar());&quot;
instead of &quot;this.getContentPane().add(getIvjMenuBar(), getIvjMenuBar().getName());&quot;

Code:
import java.awt.event.*;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class TestClient extends JFrame implements ActionListener, ItemListener{
  private JPanel ivjPanel = null;
  private JMenuBar ivjMenuBar = null;
  private JMenu ivjMenu1 = null;
  private JMenu ivjMenu2 = null;
  private JMenuItem ivjMenuItem1 = null;
  private JMenuItem ivjMenuItem2 = null;
  private JPopupMenu ivjPopupMenu = null;
  public TestClient() {
    super(&quot;Test Frame&quot;);
    this.initialize();
  }

  public void initialize() {
    this.getContentPane().setLayout(null);
    this.getContentPane().add(getIvjPanel(), getIvjPanel().getName());
    this.getContentPane().setBackground(Color.GRAY);
    //this.getContentPane().add(getIvjMenuBar(), getIvjMenuBar().getName());
    this.setJMenuBar(getIvjMenuBar()); //, getIvjMenuBar().getName());
    this.setSize(400,250);
  }

  private JMenuBar getIvjMenuBar() {
    if (ivjMenuBar == null) {
      ivjMenuBar = new JMenuBar();
//      ivjMenuBar.setLayout(null);
//      ivjMenuBar.setBounds(20, 0, 350, 20);
//      ivjMenuBar.setName(&quot;ivjMenuBar&quot;);
      ivjMenuBar.add(getIvjMenu1()); //, getIvjMenu1().getName());
      ivjMenuBar.add(getIvjMenu2()); //, getIvjMenu2().getName());
//      ivjMenuBar.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));
    }
    return ivjMenuBar;
  }

  private JPopupMenu getIvjPopupMenu() {
    if(ivjPopupMenu == null) {
      ivjPopupMenu = new JPopupMenu();
      //ivjPopupMenu.setBounds(65,0,60,20);
      ivjPopupMenu.add(getIvjMenuItem1()); //, getIvjMenuItem1().getName());
      ivjPopupMenu.add(getIvjMenuItem2()); //, getIvjMenuItem2().getName());
    }
    return ivjPopupMenu;
  }

  private JMenu getIvjMenu1() {
    if(ivjMenu1 == null) {
      ivjMenu1 = new JMenu(&quot;File&quot;);
//      ivjMenu1.setBounds(0,0,60,20);
      ivjMenu1.add(getIvjMenuItem1()); //, getIvjMenuItem1().getName());
      ivjMenu1.add(getIvjMenuItem2()); //, getIvjMenuItem2().getName());
      ivjMenu1.addActionListener(this);
    }
    return ivjMenu1;
  }

  private JMenu getIvjMenu2() {
    if(ivjMenu2 == null) {
      ivjMenu2 = new JMenu(&quot;Edit&quot;);
      //ivjMenu2.setBounds(60,0,60,20);
      ivjMenu2.addActionListener(this);
    }
    return ivjMenu2;
  }

  private JMenuItem getIvjMenuItem1() {
    if(ivjMenuItem1 == null) {
      ivjMenuItem1 = new JMenuItem(&quot;Cut&quot;);
      ivjMenuItem1.addActionListener(this);
      ivjMenuItem1.addItemListener(this);
    }
    return ivjMenuItem1;
  }

  private JMenuItem getIvjMenuItem2() {
    if(ivjMenuItem2 == null) {
      ivjMenuItem2 = new JMenuItem(&quot;Copy&quot;);
      ivjMenuItem2.addActionListener(this);
      ivjMenuItem1.addItemListener(this);
    }
    return ivjMenuItem2;
  }

  private JPanel getIvjPanel() {
    if (ivjPanel == null) {
      ivjPanel = new JPanel();
      ivjPanel.setLayout(null);
      ivjPanel.setToolTipText(&quot;Test Panel&quot;);
      ivjPanel.setBounds(20, 20, 350, 200);
      ivjPanel.setName(&quot;ivjPanel&quot;);
      ivjPanel.setBackground(Color.LIGHT_GRAY);
      ivjPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));
    }
    return ivjPanel;
  }

  public void actionPerformed(ActionEvent e) {
    System.out.println(&quot;Inside Action Event&quot;);
      if (e.getSource() == this.ivjMenu1) {
        System.out.println(&quot;Cought the Action Event: &quot;+ ivjMenu1.getText());
        validate();
      }
      if (e.getSource() == this.ivjMenuItem1) {
        System.out.println(&quot;Cought the Action Event: &quot;+ ivjMenuItem1.getText());
        validate();
      }
  }

  public void itemStateChanged(ItemEvent e){
    if (e.getSource() == this.ivjMenuItem1) {
      System.out.println(&quot;Cought the Action Event: &quot;+ ivjMenuItem1.getText());
      validate();
    }
  }

  public static void main(String[] args) {
    TestClient testClient1 = new TestClient();
    testClient1.setVisible(true);
  }

}
========================================
I would also use the default LayoutManager for JFrame (BorderLayout) :
Code:
//    this.getContentPane().setLayout(null);
    this.getContentPane().add(getIvjPanel(), BorderLayout.CENTER);// getIvjPanel().getName());
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top