私は Java でプログラムを書いており、Swing を学びながら学んでいますが、障害があるようです。私がやろうとしていることを説明するスケッチを添付しました。何をすべきかを理解するのに役立つことを願っています。
+===============================================================================+
|File Edit View Help |
+================================================================================
| | |
| | |
|Content 1 | Content 2 |
| | |
| | |
+===============================================================================+
JFrame
s とs を使用してJPanel
このプログラムを構築していますが、コンテンツの 2 つのフレームを作成する方法がわかりません。また、左の列は常に 150 ピクセルの幅で、フレームの高さ全体になり、右の列は常にウィンドウの残りの幅を埋める必要があります。
package mycookbook;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
public class MyCookBook extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
new MyCookBook();
}
public MyCookBook() {
super("My Cook Book vers. 0.0.0.1");
setSize(1920, 1030);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setMenu();
setWindows();
}
public void setMenu() {
//Setting up the menubar.
JMenuBar menubar = new JMenuBar();
//Adding the menu bar.
setJMenuBar(menubar);
//Setting up the file menu.
JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic(KeyEvent.VK_F);
JMenu nwFile = new JMenu("New >>");
JMenuItem cbNwFile = new JMenuItem("Cookbook");
JMenuItem chNwFile = new JMenuItem("Chapter");
JMenuItem rcNwFile = new JMenuItem("Recipe");
JMenu opFile = new JMenu("Open >>");
JMenuItem cbOpFile = new JMenuItem("Cookbook");
JMenuItem chOpFile = new JMenuItem("Chapter");
JMenuItem rcOpFile = new JMenuItem("Recipe");
JMenuItem svFile = new JMenuItem("Save");
JMenuItem ipFile = new JMenuItem("Import");
JMenuItem epFile = new JMenuItem("Export");
JMenuItem pnFile = new JMenuItem("Print");
JMenuItem upFile = new JMenuItem("Update");
JMenuItem prFile = new JMenuItem("Properties");
JMenuItem exFile = new JMenuItem("Exit");
//Adding all the file menu and its contents to the menubar.
menubar.add(fileMenu);
fileMenu.add(nwFile);
nwFile.add(cbNwFile);
nwFile.add(chNwFile);
nwFile.add(rcNwFile);
fileMenu.add(opFile);
opFile.add(cbOpFile);
opFile.add(chOpFile);
opFile.add(rcOpFile);
fileMenu.addSeparator();
fileMenu.add(svFile);
fileMenu.add(ipFile);
fileMenu.add(epFile);
fileMenu.add(pnFile);
fileMenu.addSeparator();
fileMenu.add(upFile);
fileMenu.add(prFile);
fileMenu.addSeparator();
fileMenu.add(exFile);
exFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//Setting up the edit menu.
JMenu editMenu = new JMenu("Edit");
editMenu.setMnemonic(KeyEvent.VK_E);
JMenuItem cbEdit = new JMenuItem("Cookbook");
JMenuItem chEdit = new JMenuItem("Chapter");
JMenuItem rcEdit = new JMenuItem("Recipe");
menubar.add(editMenu);
editMenu.add(cbEdit);
editMenu.add(chEdit);
editMenu.add(rcEdit);
//Setting up the view menu.
JMenu viewMenu = new JMenu("View");
viewMenu.setMnemonic(KeyEvent.VK_V);
JMenu mdView = new JMenu("Mode >>");
JMenuItem pnView = new JMenuItem("Panel View");
JMenuItem pgView = new JMenuItem("Page View");
JMenuItem lsView = new JMenuItem("List View");
JMenu rsView = new JMenu("Resolution >>");
JMenuItem smRes = new JMenuItem("1024x718");
JMenuItem mdRes = new JMenuItem("1440x910");
JMenuItem lgRes = new JMenuItem("1920x1030");
menubar.add(viewMenu);
viewMenu.add(mdView);
viewMenu.add(rsView);
mdView.add(pnView);
mdView.add(pgView);
mdView.add(lsView);
rsView.add(smRes);
rsView.add(mdRes);
rsView.add(lgRes);
smRes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setSize(1024,718);
setLocationRelativeTo(null);
}
});
mdRes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setSize(1440,910);
setLocationRelativeTo(null);
}
});
lgRes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setSize(1920,1030);
setLocationRelativeTo(null);
}
});
exFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//Setting up the help menu.
JMenu helpMenu = new JMenu("Help");
helpMenu.setMnemonic(KeyEvent.VK_H);
JMenuItem hpHelp = new JMenuItem("My Cookbook Help");
JMenuItem abHelp = new JMenuItem("About My Cookbook");
menubar.add(helpMenu);
helpMenu.add(hpHelp);
helpMenu.add(abHelp);
revalidate();
}
public void setWindows() {
JScrollPane bookPane = new JScrollPane();
JScrollPane recPane = new JScrollPane();
JSplitPane content = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,bookPane, recPane);
Dimension bpDim = new Dimension(150, 400);
Dimension rpDim = new Dimension(650, 400);
bookPane.setMinimumSize(bpDim);
recPane.setMinimumSize(rpDim);
add(content);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}