SwingPropertyChangeSupportを使用して、JTextarea
SwingPropertyChangeSupportは、オブジェクトのプロパティの変化を監視するために使用できるクラスです。これにより、プロパティが変更されたときに他のオブジェクトを通知することができます。これは、それに応じてGUIを更新するのに役立ちます。入力ダイアログを介して入力しました。配列は問題なく更新されますが、GUIは更新されていません。 java.awt.event.actioneventをインポートします。 java.awt.event.actionlistenerをインポートします。 java.awt.event.focuslistenerをインポートします。 java.beans.propertychangeEventをインポートします。 java.beans.propertychangelistenerをインポートします。 javax.swing.jbuttonをインポートします。 javax.swing.jframeをインポートします。 javax.swing.joptionpaneをインポートします。 javax.swing.jpanelをインポートします。 javax.swing.jtextareaをインポートします。 javax.swing.event.swingpropertychangesupportをインポートします。 パブリッククラスメイン{ public static void main(string [] arg){ guiforupdate display = new guiforupdate(); display.setVisible(true); } } クラスGuiforupdate拡張jFrameを実装するactionlistener { /** * */ private static final long serialversionuid = 1l; プライベートフォーカスリステナーFocusListener; プライベート文字列mlist; プライベートJbutton Changearraybutton; プライベートjtextarea codein、displayoutput; private int arrayindex; プライベートjpanel displaypanel; private arrayforupdating arrayforupdate = new arrayforupdating(); public guiforupdate(){ SetSize(224、180); layoutleft(); layoutdisplay(); layoutbottom(); } /** *配列用のディスプレイ領域を追加します */ public void layoutdisplay(){ displayPanel = new JPanel(); add(displaypanel、borderlayout.center); displayoutput = new jtextarea(); displaypanel.add(displayoutput); displayoutput.addfocuslistener(focuslistener); mlist = arrayforupdate.getBoundProperty(); arrayforupdate.addpropertychangelistener(new PropertyChangelistener(){ @オーバーライド public void propertyChange(PropertyChangeEvent PCEVT){ if(pcevt.getPropertyname()。 arrayforupdating.bound_property)){ mlist =(pcevt.getNewValue()。toString()); updatedIsplay(); } } }); displayoutput.settext(mlist); } /** * GUIの左に左側の要素を追加します */ public void layoutleft(){ jpanel left = new JPanel(); 追加(左、borderlayout.west); codein = new JTextarea(2、2); left.add(codein); codein.addfocuslistener(focuslistener); } /** * GUIの下部に底部要素を追加します */ public void layoutbottom(){ jpanel bottom = new jpanel(); changearraybutton = new jbutton( "Arrayの変更"); changearraybutton.addactionlistener(this); bottom.add(changearraybutton); 追加(bottom、borderlayout.south); } /** * [プロセス]ボタンのクリック */ public void actionperformed(actionevent ae){ if(ae.getSource()== changearraybutton){ //最初にコードが入力されたかどうかを確認します if(codein.getText()。trim()。length()!= 0){ // modifymemory()メソッドを呼び出します ModifyArray(); } それ以外 joptionpane.showmessagedialog(null、 「最初に何かを入力してください」); } } /** *配列を変更する方法 */ public void modifyArray(){ //入力されたアドレスを取得するためにダイアログを表示します String AddressTomodify =(String)JoptionPane .showinputdialog( "どの場所ですか?"); //文字列が入力されたかどうかを確認します if((addresstomodify!= null)&&(addresstomodify.length()> 0)){ //小数点以下のアドレスが入力された場合、整数に変換します arrayindex = integer.parseint(addresstomodify); } //整数として渡します ProcessInput(arrayIndex); } public void processinput(int a){ 文字列newValue = codein.getText(); arrayforupdate.instructionsin(newValue、a); } public void updatedisplay(){ displayoutput.settext(mlist); } } class arrayforupdating { public static final string bound_property = "bound property"; プライベート文字列BoundProperty = ""; プライベートSwingPropertyChangesupport spcsupport = new SwingPropertyChangesupport( これ); プライベートStringBuilder MLIST; private int [] myArray; public arrayforupdating(){ myArray = new int [5]; for(int i = 0; i
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3