2016-05-05 16 views
0

私の問題はProvince.javaクラスのjTextField1(更新地域)を更新することです。 最初に表示されるGUIは、記入する4つのフィールド(jTextField):province(jTextField1)、district(2)、ward(3)を含むAddAddressです。 jTextField1または2または3または4をダブルクリックするたびに、新しいJFrameが表示され、州、地区、または区のリストが表示されます。クリックすると、最初のGUIに戻り、クリックした州/区/区が更新されます。別のスイングGUIクラスでjTextFieldを更新

+3

{ // TODOここにあなたの処理コードを追加 –

+0

ます。private void jList1MouseClicked(java.awt.event.MouseEventのEVT)...いくつかのコードを示しています。 JListのtheList =(JListの)evt.getSourceを(); if(evt.getClickCount()== 2){ int index = theList.locationToIndex(evt.getPoint()); オブジェクトオブジェクト= theList.getModel()。getElementAt(index); } this.setVisible(false); 新しいAddAddress()。setVisible(true); } – ledinhhoangson

+0

InクラスAddProvince。私はSQLデータベースからクラスを作成するためにjpaを使用します – ledinhhoangson

答えて

1

このような状況ではJFrameを使用しないでください。実際には1つのアプリケーションで複数のフレームを使用するのは悪い習慣です。ここをクリックしてください:The Use of Multiple JFrames: Good or Bad Practice?ここで

私はあなたが地域を選択するようにJDialogを使用することをお勧めなど

は簡単な例です:

import java.awt.BorderLayout; 
import java.awt.FlowLayout; 
import java.awt.Frame; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JDialog; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JList; 
import javax.swing.JTextField; 

public class JDialogDemo extends JFrame { 

    public JDialogDemo() { 

     final MyDialog dialog = new MyDialog(this); 

     final JTextField provinceField = new JTextField(10); 

     JButton button = new JButton("Show Dialog"); 
     button.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       dialog.pack(); 
       dialog.setLocationRelativeTo(JDialogDemo.this); 

       dialog.setVisible(true); 

       provinceField.setText(dialog.getSelectedProvince()); 
      } 
     }); 

     setLayout(new FlowLayout()); 
     add(provinceField); 
     add(button); 

     setSize(400, 400); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     new JDialogDemo(); 
    } 
} 

class MyDialog extends JDialog { 

    private String selectedProvince; 

    public MyDialog(Frame owner) { 
     super(owner, true); 

     setTitle("Provinces"); 

     final JList<String> list = new JList<String>(new String[]{"province1", "province2", "province3"}); 
     add(list); 

     JButton okButton = new JButton("Ok"); 
     okButton.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       selectedProvince = list.getSelectedValue(); 
       setVisible(false); 
      } 
     }); 

     add(okButton, BorderLayout.SOUTH); 
    } 

    public String getSelectedProvince() { 
     return selectedProvince; 
    } 

} 

編集:

編集しjTextField1MouseClicked方法

private void jTextField1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextField1MouseClicked 
     // TODO add your handling code here: 
     if(evt.getClickCount() == 2){ 
      AddProvince provinceDialog = new AddProvince(); 
      provinceDialog.setVisible(true); 
      jTextField1.setText(provinceDialog.getSelectedProvince()); 
     } 
} 

次にAddProvinceJDialogから伸ばしてください。そして、選択された州を返すメソッドを追加します。

+0

締め切りは2日後です。どのようにすればいいのか教えてもらえますか?( – ledinhhoangson

+0

私のコード例を確認してください。 – rdonuk

+0

それは働いたことがありました!百万回ありがとう!!! – ledinhhoangson

関連する問題