当前位置: 代码迷 >> 综合 >> Apache Pivot教程 -- TabPane
  详细解决方案

Apache Pivot教程 -- TabPane

热度:7   发布时间:2024-02-24 13:42:54.0

Apache Pivot教程 – TabPane

今天来讲一讲TabPane

package tab_pane;import org.apache.pivot.wtk.*;
import org.apache.pivot.collections.*;public class tab_pane implements Application
{
    private Window window=null;public static void main(String [] args){
    try{
    DesktopApplicationContext.main(tab_pane.class, args);}catch(Throwable err){
    }}@Overridepublic void startup(Display display, Map<String, String>properties){
    window=new Window();TabPane s=new TabPane();BoxPane panel=new BoxPane();PushButton button1=new PushButton("hello");BoxPane panel1=new BoxPane();panel1.add(new Label("hello"));panel1.add(new Label("hi"));panel1.add(new PushButton("hello"));s.getTabs().add(button1);  //添加标签s.getTabs().add(panel1);  //添加标签TabPane.setTabData(button1, "hello");  //设置标签内容TabPane.setTabData(panel1, "hello, panel");  //设置标签内容s.getComponentMouseListeners().add(new ComponentMouseListener(){
    @Overridepublic boolean mouseMove(Component arg0, int arg1, int arg2) {
    panel.repaint();s.repaint();return false;}@Overridepublic void mouseOut(Component arg0) {
    panel.repaint();s.repaint();}@Overridepublic void mouseOver(Component arg0) {
    panel.repaint();s.repaint();}});panel.add(s);window.setContent(panel);window.setTitle("TabPane");window.setMaximized(true);window.open(display);}@Overridepublic boolean shutdown(boolean optional){
    if(window!=null){
    window.close();}return false;}@Overridepublic void suspend(){
    }@Overridepublic void resume(){
    }
}



能坚持看完就有菜单,现在来给大家看看怎么像浏览器一样随意增加标签

package tab_pane;import org.apache.pivot.wtk.*;
import org.apache.pivot.collections.*;public class tab_pane implements Application
{
    private Window window=null;public static void main(String [] args){
    try{
    DesktopApplicationContext.main(tab_pane.class, args);}catch(Throwable err){
    }}@Overridepublic void startup(Display display, Map<String, String>properties){
    window=new Window();TabPane s=new TabPane();BoxPane panel=new BoxPane();PushButton button1=new PushButton("hello");BoxPane panel1=new BoxPane();panel1.add(new Label("hello"));panel1.add(new Label("hi"));panel1.add(new PushButton("hello"));s.getTabs().add(button1);s.getTabs().add(panel1);//上面是基础的内容,现在难度来了ArrayList<PushButton>buttons=new ArrayList<PushButton>();  //添加按钮数组PushButton button2=new PushButton("New Tab");  //定义一个新按钮button2.getButtonPressListeners().add(new ButtonPressListener(){
    @Overridepublic void buttonPressed(Button button){
    buttons.add(new PushButton("hello"));s.getTabs().add(buttons.get(buttons.getLength()-1));TabPane.setTabData(buttons.get(buttons.getLength()-1), "hello");}});s.setCorner(button2);  //在右上角添加按钮//回到之前的代码TabPane.setTabData(button1, "hello");TabPane.setTabData(panel1, "hello, panel");s.getComponentMouseListeners().add(new ComponentMouseListener(){
    @Overridepublic boolean mouseMove(Component arg0, int arg1, int arg2) {
    panel.repaint();s.repaint();return false;}@Overridepublic void mouseOut(Component arg0) {
    panel.repaint();s.repaint();}@Overridepublic void mouseOver(Component arg0) {
    panel.repaint();s.repaint();}});panel.add(s);window.setContent(panel);window.setTitle("TabPane");window.setMaximized(true);window.open(display);}@Overridepublic boolean shutdown(boolean optional){
    if(window!=null){
    window.close();}return false;}@Overridepublic void suspend(){
    }@Overridepublic void resume(){
    }
}



上面的实验证明了标签名称可以重复,标签可以随意增删

  相关解决方案