|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net网页编程并驾齐驱的
在本章的前部,向我们先容了老式的CardLayout,而且注重到我们如何往办理我们一切的卡片开关。风趣的是,有人如今以为这是一种不错的计划。侥幸的是,Swing用JTabbedPane对它举行了修补,由JTabbedPane来处置这些卡片,开关和别的的任何事物。对照CardLayout和JTabbedPane,我们会发明惊人的差别。
上面的程序例子非常的风趣,由于它使用了后面例子的计划。它们都是做为JPanel的衍生物来构建的,因而这个程序将安置后面的每一个例子到它本人在JTabbedPane的窗格中。我们会看到使用RTTI打造的程序非常的玲珑精巧:- //:Tabbed.java
- //Usingtabbedpanes
- packagec13.swing;
- importjava.awt.*;
- importjavax.swing.*;
- importjavax.swing.border.*;
- publicclassTabbedextendsJPanel{
- staticObject[][]q={
- {"Felix",Borders.class},
- {"TheProfessor",Buttons.class},
- {"RockBottom",ButtonGroups.class},
- {"Theodore",Faces.class},
- {"Simon",Menus.class},
- {"Alvin",Popup.class},
- {"Tom",ListCombo.class},
- {"Jerry",Progress.class},
- {"Bugs",Trees.class},
- {"Daffy",Table.class},
- };
- staticJPanelmakePanel(Classc){
- Stringtitle=c.getName();
- title=title.substring(
- title.lastIndexOf(.)+1);
- JPanelsp=null;
- try{
- sp=(JPanel)c.newInstance();
- }catch(Exceptione){
- System.out.println(e);
- }
- sp.setBorder(newTitledBorder(title));
- returnsp;
- }
- publicTabbed(){
- setLayout(newBorderLayout());
- JTabbedPanetabbed=newJTabbedPane();
- for(inti=0;i<q.length;i++)
- tabbed.addTab((String)q[i][0],
- makePanel((Class)q[i][1]));
- add(tabbed,BorderLayout.CENTER);
- tabbed.setSelectedIndex(q.length/2);
- }
- publicstaticvoidmain(Stringargs[]){
- Show.inFrame(newTabbed(),460,350);
- }
- }///:~
复制代码
再者,我们能够注重到利用的数组机关式样:第一个元素是被置放在卡片上的String,第二个元素是将被显现在对应窗格上JPanel类。在Tabbed()构建器里,我们能够看到两个主要的JTabbedPane办法被利用:addTab()拔出一个新的窗格,setSelectedIndex()选择一个窗格并从它入手下手。(一个在两头被选中的窗格证实我们不用从第一个窗格入手下手)。
当我们挪用addTab()办法时,我们为它供应卡片的String和一些组件(也就是说,一个AWT组件,而不是一个来自AWT的JComponent)。这个组件会被显现在窗格中。一旦我们如许做了,天然而然的就不必要更多办理了——JTabbedPane会为我们处置别的的任何事。
makePanel()办法猎取我们想创立的类Class对象和用newInstance()往创立并外型为JPanel(固然,假定那些类是必需从JPanel承继才干增添的类,除非在这一节中为程序例子的布局所利用)。它增添了一个包含类名并前往了局的TitledBorder,以作为一个JPanel在addTab()被利用。
当我们运转程序时,我们会发明假如卡片太多,填满了一行,JTabbedPane主动地将它们聚积起来。
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢? |
|