Я не вижу свое JMenu в кадре, когда запускаю его, что мне делать?
Я снял панель там, где она была раньше, теперь я просто хочу поместить ее в свою рамку.
package app.ui;
import java.awt.Color;
import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.WindowConstants;
import app.model.User;
import app.util.JMenusss;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
public class JMenus {
private JFrame menuu;
private SecurityQuestion securityQuestion;
private User user;
private JMenu mnAccount;
public JMenus(JFrame menuu) {
this.menuu = menuu;
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
final JLabel lblHome = new JLabel("");
lblHome.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent arg0) {
Welcome myWelcome = new Welcome();
menuu.dispose();
}
});
lblHome.setIcon(new ImageIcon(JMenus.class.getResource("/app/resources/home-icon.png")));
lblHome.setBounds(780, 4, 88, 83);
menuu.getContentPane().add(lblHome);
final JLabel lblItem = new JLabel("");
lblItem.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent arg0) {
ItemManagement myItemManagement = new ItemManagement();
myItemManagement.ItemManagement();
menuu.dispose();
}
});
lblItem.setIcon(new ImageIcon(JMenus.class.getResource("/app/resources/items.png")));
lblItem.setBounds(860, 4, 88, 83);
menuu.getContentPane().add(lblItem);
final JLabel lblGroupManagement = new JLabel("");
lblGroupManagement.setIcon(new ImageIcon(JMenus.class.getResource("/app/resources/group11.png")));
lblGroupManagement.setBounds(940, 4, 88, 83);
menuu.getContentPane().add(lblGroupManagement);
lblGroupManagement.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
GroupManagement myGroupManagement = new GroupManagement();
myGroupManagement.groupManagement();
menuu.dispose();
}
});
final JLabel lblInventory = new JLabel("");
lblInventory.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
IOStock myInventory = new IOStock();
myInventory.InventoryWindow();
menuu.dispose();
}
});
lblInventory.setIcon(new ImageIcon(JMenus.class.getResource("/app/resources/IO.png")));
lblInventory.setBounds(1020, 4, 88, 83);
menuu.getContentPane().add(lblInventory);
final JLabel lblLogout = new JLabel("");
lblLogout.setIcon(new ImageIcon(JMenus.class.getResource("/app/resources/lock.png")));
lblLogout.setBounds(1100, 4, 120, 83);
menuu.getContentPane().add(lblLogout);
lblLogout.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
int selectedOption = JOptionPane.showConfirmDialog(null,"You are about to logout, are you sure?","Choose",JOptionPane.YES_NO_OPTION);
if (selectedOption == JOptionPane.YES_OPTION) {
Login window = new Login();
window.frmLogin.setVisible(true);
menuu.dispose();
}
}
});
Здесь мой JMenu
JMenuBar mnbMenu = new JMenuBar();
mnbMenu.setBackground(Color.WHITE);
mnbMenu.setBounds(100, 4, 80, 89);
menuu.getContentPane().add(mnbMenu);
mnAccount = new JMenu();
mnAccount.setBackground(Color.WHITE);
mnAccount.setForeground(Color.WHITE);
mnAccount.setIcon(new ImageIcon("/app/resources/Settings-icon.png"));
mnAccount.setBounds(1180, 4, 100, 100);
mnbMenu.add(mnAccount);
JMenuItem mntmChangeUsername = new JMenuItem("Change Username");
mntmChangeUsername.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent arg0) {
UpdateUserName updateUsername = new UpdateUserName(user);
updateUsername.setVisible(true);
}
});
//mntmChangeUsername.setBackground(Color.WHITE);
mnAccount.add(mntmChangeUsername);
JMenuItem mntmChangePassword = new JMenuItem("Change Password");
mntmChangePassword.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent arg0) {
ChangeUsername changeUsername = new ChangeUsername(menuu);
changeUsername.changeAcc();
}
});
mntmChangePassword.setBackground(Color.WHITE);
mnAccount.add(mntmChangePassword);
JMenuItem mntmChangeSecurityQuestion = new JMenuItem("Change Security Question");
mntmChangeSecurityQuestion.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent arg0) {
ChangeSecurityQuestion changeSecurity = new ChangeSecurityQuestion(user, securityQuestion);
changeSecurity.setVisible(true);
changeSecurity.setLocationRelativeTo(null);
changeSecurity.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
changeSecurity.setAlwaysOnTop(true);
}
});
mntmChangeSecurityQuestion.setBackground(Color.WHITE);
mnAccount.add(mntmChangeSecurityQuestion);
}
}
Это мой код... Я хочу добавить JMenu в свой фрейм, но его не видно, почему?
setJMenuBar
.. - person Andrew Thompson   schedule 15.03.2014mntmChangeUsername.addMouseListener(..
Не добавляйте в меню прослушиватель мыши. Он не будет реагировать на ввод с клавиатуры. Вместо этого добавьтеActionListener
илиAction
.ActionListener
/Action
обнаружит как мышь, так и клавиатуру. - person Andrew Thompson   schedule 15.03.2014lblInventory.setBounds(1020, 4, 88, 83);
Графические интерфейсы Java могут работать на нескольких платформах, с разными разрешениями экрана и с использованием разных PLAF. Как таковые они не способствуют точному размещению компонентов. Чтобы организовать компоненты для надежного графического интерфейса, вместо этого используйте менеджеры компоновки или их их комбинации, а также отступы и границы макета для пробел. - person Andrew Thompson   schedule 15.03.2014