Je voudrais ajouter un JMenuBar à un Jpanel. J'ai essayé:Afficher JMenu dans JPanel sans frame.setJMenuBar
p.add(menubar, BorderLayout.NORTH);
aussi: Je ne veux pas faire utilisez la méthode JSetMenu sur le JFrame parce que je fais actuellement un Astah-plugin et je voudrais que le JPanel (où le JMenuBar est) pour être à Astah.
Comment puis-je définir un JMenuBar à un Jpanel afin qu'il passe en haut? Je voudrais mettre tout le contenu dans le Jpanel et le mettre dans Astah.
Le code pour le mettre en Astah:
import com.change_vision.jude.api.inf.project.ProjectAccessor;
import com.change_vision.jude.api.inf.project.ProjectAccessorFactory;
import com.change_vision.jude.api.inf.project.ProjectEvent;
import com.change_vision.jude.api.inf.project.ProjectEventListener;
import com.change_vision.jude.api.inf.ui.IPluginExtraTabView;
import com.change_vision.jude.api.inf.ui.ISelectionListener;
import javax.swing.*;
import java.awt.*;
public class showobjects extends JPanel implements IPluginExtraTabView, ProjectEventListener {
public showobjects() {
initComponents();
}
private void initComponents() {
setLayout(new BorderLayout());
add(createLabelPane());
addProjectEventListener();
}
private void addProjectEventListener() {
try {
ProjectAccessor projectAccessor = ProjectAccessorFactory.getProjectAccessor();
projectAccessor.addProjectEventListener(this);
} catch (ClassNotFoundException e) {
e.getMessage();
}
}
private Container createLabelPane() {
JLabel label = new JLabel("showobjects ");
JScrollPane pane = new JScrollPane(label);
showobjects app = new showobjects();
JPanel mainJpanel = app.createJPanel();
return mainJpanel;
}
@Override
public void projectChanged(ProjectEvent e) {
}
@Override
public void projectClosed(ProjectEvent e) {
}
@Override
public void projectOpened(ProjectEvent e) {
}
@Override
public void addSelectionListener(ISelectionListener listener) {
}
@Override
public Component getComponent() {
return this;
}
@Override
public String getDescription() {
return "Show showobjects here";
}
@Override
public String getTitle() {
return "showobjects ";
}
public void activated() {
}
public void deactivated() {
}
}
Je l'ai fait un test très simplement à l'aide d'un '' JPanel' et BorderLayout' et il fonctionne très bien pour moi – MadProgrammer