2013-01-21 3 views
-1

나는 진짜 멍청하다. 나는 corectly에게 미안하다.자바의 다른 클래스에서 문자열을 호출하는 방법

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을 가지고위한 스크립트입니다

그래서 여기 있습니다 버튼 "caled"에 올리기 추가 "

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 ""내 JList의에 추가되어 호출된다 나의 확장 된 새로운 클래스에 표시하기 "(여기 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); 

} 

도움을 주셔서 감사합니다. 설명을 제대로하지 않으면 죄송합니다. 저는 정말로 멍청한 행동입니다. 희망을 이해하고 시간을 낭비하지 않았다.

+0

그리고 뭐가 문제입니까? –

+0

질문은 "detalii"에서 "carti"라고하는 메인 클래스에있는 값을 JLabels에 추가하는 방법이며 동일한 클래스에있는 JList에 Adauga 버튼에 의해 adeda가 지정됩니다. 당신이 이해하길 바랍니다) – zaporojan

답변

0

정확하게 이해했다면 "detalii"클래스의 레이블을 "Adauga"메소드에서 제공하는 정보로 업데이트해야합니다. 그렇게하는 한 가지 방법은 "Adauga"메서드에서 "detalii"내의 메서드를 호출하는 것입니다.

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); 
} 

이 아마 가장 좋은 방법은 아니지만 이것이

내가 "에 올리기"로 변경 얼마나입니다 당신이 제공 한 정보에 따라 어떻게 문제를 해결할 수 있을까요?

+0

정보 주셔서 감사하지만 그것은 말합니다 : detalii 유형에서 비 정적 메서드 pushNewInfo (문자열, 문자열, 문자열, 문자열) 정적 참조를 만들 수 없습니다. 그리고 제가 세부 사항을 게시하지 않은 경우 더 게시 할 것입니다. 미안해. 최선을 다해 설명하려고 애 쓰고 너의 도움에 감사한다. – zaporojan

+0

아, 죄송합니다. 다음과 같이 "정적"키워드를 "pushNewInfo"메소드에 추가해야합니다. public static void pushNewInfo (String author ... 희망이 있습니다! – Katalyst

관련 문제