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)
{
}
}
@Override
public 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()
{
@Override
public boolean mouseMove(Component arg0, int arg1, int arg2) {
panel.repaint();
s.repaint();
return false;
}
@Override
public void mouseOut(Component arg0) {
panel.repaint();
s.repaint();
}
@Override
public void mouseOver(Component arg0) {
panel.repaint();
s.repaint();
}
});
panel.add(s);
window.setContent(panel);
window.setTitle("TabPane");
window.setMaximized(true);
window.open(display);
}
@Override
public boolean shutdown(boolean optional)
{
if(window!=null)
{
window.close();
}
return false;
}
@Override
public void suspend()
{
}
@Override
public 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)
{
}
}
@Override
public 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(){
@Override
public 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()
{
@Override
public boolean mouseMove(Component arg0, int arg1, int arg2) {
panel.repaint();
s.repaint();
return false;
}
@Override
public void mouseOut(Component arg0) {
panel.repaint();
s.repaint();
}
@Override
public void mouseOver(Component arg0) {
panel.repaint();
s.repaint();
}
});
panel.add(s);
window.setContent(panel);
window.setTitle("TabPane");
window.setMaximized(true);
window.open(display);
}
@Override
public boolean shutdown(boolean optional)
{
if(window!=null)
{
window.close();
}
return false;
}
@Override
public void suspend()
{
}
@Override
public void resume()
{
}
}
上面的实验证明了标签名称可以重复,标签可以随意增删