-1

私は本当の初心者なので、正確に尋ねていない場合はお願いします。

だからここにあります:

 public class carti extends JFrame {
    JTextField txttitlu;
    JTextField txtautor;
    JTextField txtcat;
    JTextField txtedi;
    JTextField txtpret;
    DefaultListModel model;
    JList lista;
    String editura;
    String titlu;
    String autor;
    String categorie;

これは私が持っているメイン クラス関数です。このクラスには、ボタンによって JList に挿入される 4 つの JTextFields があります (「adauga」と呼ばれる追加ボタンのスクリプトは次のとおりです)。

 public void Adauga() {

        autor = txtautor.getText().trim();
        titlu = txttitlu.getText().trim();
        categorie = txtcat.getText().trim();
        editura = txtedi.getText().trim();

        if (autor.equals("")) {
            JOptionPane.showMessageDialog(null, "Nu ati completat Titlu!");
            return;
        }
        if (titlu.equals("")) {
            JOptionPane.showMessageDialog(null, "Nu ati completat Autor!");
            return;
        }
        if (categorie.equals("")) {
            JOptionPane.showMessageDialog(null, "Nu ati completat Categorie!");
            return;
        }
        String numeComplet = autor + " / " + titlu + " : " + categorie;
        model.addElement(numeComplet);

    }

だから私が欲しいのは:ボタン「Adauga」が私のJListに追加して、「detalii」と呼ばれる拡張された新しいクラスに表示されるものです(ここでは、siが作成した新しいクラスのコードです(「detalii」) :

public detalii(){

    this.setTitle("Detalii despre Carte");
    setSize(400, 300);
    setResizable(false);
    setLocation(370, 150);
    setLayout(null);
    JLabel lbltitlu= new JLabel("Titlu" +" : "); 
    lbltitlu.setBounds(15, 5, 120, 25);
    this.add(lbltitlu);
    JLabel lblautor= new JLabel("Autor" +" : "); 
    lblautor.setBounds(15, 25, 120, 25);
    this.add(lblautor);
    JLabel lblcategorie= new JLabel("Categorie" +" : "); 
    lblcategorie.setBounds(15, 45, 120, 25);
    this.add(lblcategorie);
    JLabel lbleditura= new JLabel("Editura" +" : "  ); 
    lbleditura.setBounds(15, 65, 120, 25);
    this.add(lbleditura);

}

助けてくれてありがとう。私の説明が適切に行われていない場合は申し訳ありません。私は本当に初心者です。ご理解いただき、時間を無駄にしないことを願っています。

4

1 に答える 1

0

私の理解が正しければ、「Adauga」メソッドによって提供される情報で「detalii」クラスのラベルを更新する必要があります。その方法の 1 つは、「Adauga」メソッドから「detalii」内のメソッドを呼び出すことだと思います。

これは、「Adauga」を変更する方法です。

public void Adauga() {

    autor = txtautor.getText().trim();
    titlu = txttitlu.getText().trim();
    categorie = txtcat.getText().trim();
    editura = txtedi.getText().trim();

    if (autor.equals("")) {
        JOptionPane.showMessageDialog(null, "Nu ati completat Titlu!");
        return;
    }
    if (titlu.equals("")) {
        JOptionPane.showMessageDialog(null, "Nu ati completat Autor!");
        return;
    }
    if (categorie.equals("")) {
        JOptionPane.showMessageDialog(null, "Nu ati completat Categorie!");
        return;
    }
    String numeComplet = autor + " / " + titlu + " : " + categorie;
    model.addElement(numeComplet);

    detalii.pushNewInfo(autor, titlu, categorie, editura);  // Add This Line!

}

そして、「detalii」を次のように変更します。

private JLabel lbltitlu;
private JLabel lblautor;
private JLabel lbleditura;
private JLabel lblcategorie;

public detalii(){

    this.setTitle("Detalii despre Carte");
    setSize(400, 300);
    setResizable(false);
    setLocation(370, 150);
    setLayout(null);
    lbltitlu= new JLabel("Titlu" +" : "); 
    lbltitlu.setBounds(15, 5, 120, 25);
    this.add(lbltitlu);
    lblautor= new JLabel("Autor" +" : "); 
    lblautor.setBounds(15, 25, 120, 25);
    this.add(lblautor);
    lblcategorie= new JLabel("Categorie" +" : "); 
    lblcategorie.setBounds(15, 45, 120, 25);
    this.add(lblcategorie);
    lbleditura= new JLabel("Editura" +" : "  ); 
    lbleditura.setBounds(15, 65, 120, 25);
    this.add(lbleditura);
}

public void pushNewInfo(String author, String title, 
                        String category, String editor) {
    lblautor.setText("Autor : " + author);
    lbltitlu.setText("Titlu : " + title);
    lblcategorie.setText("Categorie : " + category);
    lbleditura.setText("Editura : " + editor);
}

これはおそらく最善の解決策ではありませんが、提供された情報に基づいて問題を解決する方法です。

于 2013-01-21T16:10:36.780 に答える