Apache Pivot教程 -- SuggestionPopup输入建议

Apache Pivot教程 – SuggestionPopup

在HTML中<input>总是可以提示之前输入过的内容,在Apache Pivot里面怎么做到呢?答案已经在标题里了,用SuggestionPopup

package text;

import org.apache.pivot.wtk.*;
import org.apache.pivot.collections.*;

public class suggestion_popup implements Application
{
	private Window window=null;
	private SuggestionPopup suggestionpopup=new SuggestionPopup();  //提示
	public static void main(String [] args)
	{
		try
		{
			DesktopApplicationContext.main(suggestion_popup.class, args);
		}
		catch(Throwable err)
		{
		}
	}
	@Override
	public void startup(Display display, Map<String, String>properties)
	{
		window=new Window();
		BoxPane panel=new BoxPane();
		ArrayList<String>suggestions=new ArrayList<String>();  //建立提示内容列表
		suggestions.setComparator(String.CASE_INSENSITIVE_ORDER);  //设置列表属性
		suggestions.add("hello");  //添加提示
		suggestions.add("hi");  //添加提示
		TextInput textinput1=new TextInput();
		textinput1.setText("hello");
		textinput1.getTextInputContentListeners().add(new TextInputContentListener.Adapter()  //检测文本输入
				{
			@Override
			public void textInserted(TextInput textinput, int index, int count)
			{
				String text=textinput.getText();
				ArrayList<String>arr=new ArrayList<String>();  //正式建议列表
				for(String str:suggestions)  //遍历建议列表
				{
					if(str.toUpperCase().startsWith(text.toUpperCase()))  //如果简体文本由输入的内容开始
					{
						arr.add(str);  //添加到正式建议列表
					}
				}
				if(arr.getLength()>0)
				{
					suggestionpopup.setSuggestionData(arr);  //绑定正式提示窗
					suggestionpopup.open(textinput);  //打开建议提示
				}
			}
			@Override
			public void textRemoved(TextInput arg0, int arg1, int arg2)
			{
				suggestionpopup.close();  //关闭提示窗
			}
				});
		panel.add(textinput1);
		
		PushButton button1=new PushButton();
		button1.setButtonData("getIndex0");
		button1.getButtonPressListeners().add(new ButtonPressListener()
				{
			@Override
			public void buttonPressed(Button button)
			{
				Alert.alert(Character.toString(textinput1.getCharacterAt(0)), window);
			}
				});
		panel.add(button1);
		PushButton button2=new PushButton();
		button2.setButtonData("getCharacterNumber");
		button2.getButtonPressListeners().add(new ButtonPressListener()
				{
			@Override
			public void buttonPressed(Button button)
			{
				Alert.alert(Integer.toString(textinput1.getCharacterCount()), window);
			}
				});
		panel.add(button2);
		PushButton button3=new PushButton();
		button3.setButtonData("Information");
		button3.getButtonPressListeners().add(new ButtonPressListener()
				{
			@Override
			public void buttonPressed(Button button)
			{
				textinput1.setSelection(1, 4);
				System.out.println(textinput1.getMaximumLength());
				System.out.println(textinput1.getPrompt());
				System.out.println(textinput1.getSelectedText());
				System.out.println(textinput1.getSelectionLength());
				System.out.println(textinput1.getSelectionStart());
				System.out.println(textinput1.getSelection());
				System.out.println(textinput1.getText());
				System.out.println(textinput1.getText(0, 5));
				System.out.println(textinput1.isEditable());
				System.out.println(textinput1.isPassword());
				textinput1.clearSelection();
				textinput1.setPassword(true);
			}
				});
		panel.add(button3);
		
		window.setContent(panel);
		window.setTitle("TextInput");
		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()
	{
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值