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(){
}
}
上面的实验证明了标签名称可以重复,标签可以随意增删