我得到了一个项目来制作一个名为医生护理的java程序,它有登录面板(用户名和密码)和一个有3个标签的面板。问题是我只能添加一个选项卡,当我尝试通过复制对象(如label2,panel2等)添加另一个选项卡时,它不会出现在执行的JAR文件中。我已经发布了以下代码。
public void actionPerformed(ActionEvent ae)
{String value1 = text1.getText();
String value2 = text2.getText();
if(value1.equals("admin") && value2.equals("admin123456")) {
NextPage page=new NextPage();
page.setVisible(true);
JTabbedPane tabbedPane1 = new JTabbedPane();
ImageIcon icon1 = createImageIcon("images/middle.gif");
JComponent panel1 = makeTextPanel("panel#1");
tabbedPane1.addTab("Booking", icon1, panel1, "For booking appointments");
JLabel label = new JLabel("Welcome "+value1);
page.getContentPane().add(label);
page.getContentPane().add(tabbedPane1);
//page.add(icon);
page.getContentPane().add(panel1);
JTabbedPane tabbedPane2 = new JTabbedPane();
ImageIcon icon2 = createImageIcon("images/middle.gif");
JComponent panel2 = makeTextPanel("panel#2");
tabbedPane2.addTab("Doctors", icon2, panel2, "For choosing appointments");
JLabel label2 = new JLabel("Welcome "+value2);
page.getContentPane().add(label2);
page.getContentPane().add(tabbedPane2);
//page.add(icon2);
page.getContentPane().add(panel2);}
答案 0 :(得分:3)
通常,我总是将GUI构建器视为此任务的最佳工具。
不正确代码不可移植
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jTabbedPane = new javax.swing.JTabbedPane();
jPanelFirst = new javax.swing.JPanel();
jPanelSecond = new javax.swing.JPanel();
jPanelThird = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanelFirst.setLayout(null);
jTabbedPane.addTab("tab1", jPanelFirst);
jPanelSecond.setLayout(null);
jTabbedPane.addTab("tab2", jPanelSecond);
jPanelThird.setLayout(null);
jTabbedPane.addTab("tab3", jPanelThird);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTabbedPane)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTabbedPane)
);
pack();
}// </editor-fold>
当然,如果你在Eclipse中加载它并做一些“手动混乱”,你可能会抱怨NetBeans无法加载它。那是真的。
就个人而言,我总是问自己。我是想把时间花在手动编写所有代码上,还是我更专注于业务逻辑,并在一些有助于快速完成的工具中进行所有GUI构建?
总是需要权衡利弊。
答案 1 :(得分:0)
这是我前一段时间写过的程序中使用tabbedPanes的示例,如果我有更大的图片,我可以帮助更多。相反,只需将其用作可能的资源,以查看顺序是否可能在窗格中添加选项卡。
注意,contentPane是WindowsBuilder中生成的JPanel。
tabbedPane = new JTabbedPane(JTabbedPane.LEFT);
tabbedPane.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
tabbedPane.setBackground(Color.DARK_GRAY);
tabbedPane.setForeground(Color.white);
tabbedPane.setBounds(10, 11, 1900, 1058 - taskBarSize);
tabbedPane.setFont(new Font("Arial Black", Font.BOLD, 14));
contentPane.add(tabbedPane);
te = new TournamentEnlisting();
tabbedPane.add("<html><body><table width='250'>Tournament Enlisting</table></body></html>", te);
su = new StreamUpdater();
tabbedPane.addTab("<html><body><table width='250'>Stream Updating</table></body></html>", su);
sc = new StreamCapture();
tabbedPane.addTab("<html><body><table width='250'>Stream Capture</table></body></html>", sc);
thumb = new ThumbnailEditor();
tabbedPane.addTab("<html><body><table width='250'>Thumbnail Editor</table></body></html>", thumb);