过去几天一直试图手动编写GUI,并且我遇到了非常基本的问题。我有一个JFrame作为主窗口,他们试图在其中添加JPanels中的其他组件。单独的部分工作,但有问题将它们加在一起。在代码中,问题在于将工具栏添加到JPanel,然后将两者的组合添加到JFrame。关于构建工具栏(http://docs.oracle.com/javase/tutorial/uiswing/components/toolbar.html)后面的oracles示例,但我认为问题是我如何将其添加到框架或将组件添加到JPanel然后添加到框架的一般方法。代码如下.....任何想法
框架类
import javax.swing.*;
import java.awt.*;
public class frmMainMenu {
public static void main(String main[]){
//Create Frame
JFrame frmMainMenu = new JFrame();
//Size Frame
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int Width = screenSize.width;
int Height = screenSize.height;
frmMainMenu.setSize(Width,Height);
//Add Components
comLeftToolBar obj1 = new comLeftToolBar();
frmMainMenu.add(obj1);
//Display Frame
frmMainMenu.setVisible(true);
}
}
工具栏类
import java.awt.*;
import javax.swing.*;
public class comLeftToolBar extends JFrame{
//Create ToolBar
public void comCreateNavBar() {
JToolBar comNavToolBar = new JToolBar();
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int Height = screenSize.height;
comNavToolBar.setSize(50, Height - 100);
comNavButtons(comNavToolBar);
}
//Create Buttons
public void comNavButtons(JToolBar comNavToolBar) {
JButton comNavButton = new JButton();
JButton comProButton = new JButton();
comNavToolBar.add(comNavButton);
comNavToolBar.add(comProButton);
}
//Create Navigation Bar
public void comLeftNavBar() {
JPanel comNavBar = new JPanel();
comNavBar.add(new comLeftToolBar());
}
}
感谢您提供的任何指导,感谢
答案 0 :(得分:2)
该代码中存在多个问题,这些问题向我表明您正在尝试“通过魔术编程”。那是行不通的。您需要阅读教程并阅读JavaDocs,以便有机会制作有效的GUI。此代码编译,运行并显示工具栏,但它仍然远。
import javax.swing.*;
import java.awt.*;
public class FrmMainMenu {
public static void main(String main[]){
//Create Frame
JFrame frmMainMenu = new JFrame();
//Size Frame
frmMainMenu.setExtendedState(JFrame.MAXIMIZED_BOTH);
//Add Components
comLeftToolBar obj1 = new comLeftToolBar();
obj1.comCreateNavBar();
frmMainMenu.add(obj1);
frmMainMenu.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//Display Frame
frmMainMenu.setVisible(true);
}
}
class comLeftToolBar extends JPanel{
//Create ToolBar
public void comCreateNavBar() {
setLayout(new BorderLayout());
JToolBar comNavToolBar = new JToolBar();
comNavButtons(comNavToolBar);
add(comNavToolBar, BorderLayout.PAGE_START);
}
//Create Buttons
public void comNavButtons(JToolBar comNavToolBar) {
JButton comNavButton = new JButton("Nav");
JButton comProButton = new JButton("Pro");
comNavToolBar.add(comNavButton);
comNavToolBar.add(comProButton);
}
//Create Navigation Bar
public void comLeftNavBar() {
JPanel comNavBar = new JPanel();
comNavBar.add(new comLeftToolBar());
}
}
答案 1 :(得分:0)
如果问题是没有任何显示,那么我认为你错过了setContentPane()
。试试
frmMainMenu.setContentPane(comLeftToolBar);
在执行frmMainMenu.setVisible();
之前。