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