資源描述:
《15、swing用戶界面組件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第十四講Swing用戶界面組件目標(biāo)了解Swing的結(jié)構(gòu)了解SwingGUI的容器掌握J(rèn)frame和Jpanel的使用掌握用戶界面組件的使用方法掌握常用Swing布局管理器的使用2Swing結(jié)構(gòu)ObjectComponentJFrameContainerWindowFrameDialogJDialogJTextJComboBoxJLabelJListJMenuBarJOptionPaneJPanelJScrollBarAbstractButtonJToggleButtonJMenuItemJButtonJCheckBoxJRadioButtonJComponentJMenu3文本組件Jtex
2、tComponent是所有Swing文本組件的根類JTextFieldJTextComponentJEditorPaneJTextAreaJTextPaneJPasswordFieldJavax.swing.text.JtextComponent類的常用方法:voidsetText(Stringt)//改變一個(gè)文本組件中的文本StringgetText()//返回一個(gè)文本組件中的文本voidsetEditable(booleanb)//決定用戶能否編輯文本組件的內(nèi)容4文本框JTextField(1)JTextField組件允許輸入或編輯單行文本此類的構(gòu)造函數(shù)包括:JTextField()J
3、TextField(Documentdoc,Stringtext,intcolumns)JTextField(intcolumns)//建立一個(gè)指定列寬度的空白文本框JTextField(Stringtext)//建立一個(gè)帶有初始文本的文本框JTextField(Stringtext,intcolumns)把文本框添加到窗口的通常辦法是把它先添加到面板或者其它容器中。示例:……Containercon=getContentPane();con.setLayout(newFlowLayout());JLabeljl=newJLabel(“文本域”);con.add(jl);JTextFiel
4、dtf=newJTextField(20);con.add(tf);……5文本框JTextField(2)在實(shí)踐中,應(yīng)該把文本框的最大列寬多設(shè)1到2個(gè)字符。輸入文本的長(zhǎng)度可以超過(guò)最大列寬,這時(shí)文本框就會(huì)卷動(dòng)。如果你需要在運(yùn)行時(shí)重新設(shè)置列寬,應(yīng)聯(lián)合使用setColumns方法和包含該文本框的容器的validate方法。textFiled.setColumns(10);panel.validate();//布局管理器重新繪制容器可以在任何時(shí)候改變文本框的內(nèi)容:textFiled.setText(“hello!”);獲取文本框中的內(nèi)容并去掉前后空格:textFiled.getText().tri
5、m();intadd1=Integer.parseInt(textFiled.getText().trim());6文本框JTextField(3)所有文本組件的模型都由Document接口說(shuō)明,這既包括無(wú)格式的文本,也包括格式化的文本(如html)。當(dāng)數(shù)據(jù)改變后,可以要求文檔(而非文本組件)通知你,這需要安裝一個(gè)文檔監(jiān)聽(tīng)器://新建文檔監(jiān)聽(tīng)器DocumentListenerresultListener=newResultListener();...//為第一個(gè)文本域安裝一個(gè)文檔監(jiān)聽(tīng)器originText.getDocument().addDocumentListener(resultLi
6、stener);//當(dāng)文本發(fā)生改變后,下面三個(gè)方法之一會(huì)被調(diào)用:voidinsertUpdate(DocumentEvente)voidremoveUpdate(DocumentEvente)voidchangedUpdate(DocumentEvente)//改變格式時(shí)你的文檔監(jiān)聽(tīng)器必須實(shí)現(xiàn)這三個(gè)方法如果你使用一個(gè)動(dòng)作監(jiān)聽(tīng)器的話,只有當(dāng)用戶按下ENTER鍵時(shí),該動(dòng)作監(jiān)聽(tīng)器才會(huì)得到通知。7文本框使用示例獲取兩個(gè)文本框的輸入并求和,然后顯示在第三個(gè)文本框中。程序代碼見(jiàn)TextFieldTest.java。運(yùn)行結(jié)果如下:初始狀態(tài)改變輸入8密碼框JPasswordField特殊的文本框。在密碼框
7、中輸入時(shí),用戶的輸入并不會(huì)真正顯示出來(lái),而是顯示回顯字符,如“*”,以防止被他人看見(jiàn)用戶輸入的密碼。構(gòu)造函數(shù):JPasswordField(Stringtext,intcolumns)參數(shù):text顯示的文本,如果沒(méi)有則為nullcolumns列大小其它方法voidsetEchoChar(charecho)設(shè)置密碼框的回顯字符。0表示設(shè)置為默認(rèn)回顯字符char[]getPassword()返回包含在密碼框中的文本。9密碼