2016-03-22 29 views
-2

Metin eklemeye çalışıyorum. Benim println, appedText yönteminin içinde iyi çalışıyor, ancak diğer sınıftan gönderdiğim şeyi ekleyemiyorum. Dize yöntemini yaparsam ve sonucu döndürürsem yapabilirim.Başka bir sınıftan textArea ekleyemiyor contractor object

Lütfen minnettar olurum lütfen. Ayrıca ben kurucular "this.textArea" vb

public class BetParser { 

    public JMenuBar menuBar = new JMenuBar(); 
    public JMenu menu, submenu; 
    public JMenuItem menuItem; 
    public JTextField textField; 
    public JTextArea textArea = new JTextArea(5,20); 
    public JFrame frame = new JFrame("BetBrain Parser"); 
    public JPanel panel = new JPanel(new BorderLayout()); 
    public JLabel gridlabel = new JLabel(""); 
    public JScrollPane scrollPane = new JScrollPane(textArea); 
    public JButton button; 
    public URL url; 

    public BetParser(){} 

    public BetParser(JTextArea textArea){ 
     this.textArea=textArea; 
    } 

    public void createAndShowGUI() { 
     //some code here for the gui 

     htmlparser parseitem = new htmlparser(); 

     try { 
      parseitem.JsoupParser(sitelink); 
    } 
} 

Ben appendText yöntemi yaptım ve htmlparser sınıfından yöntemini çağırın eserler vermediğinde

public void appendText(String msg){ 
    textArea.append(msg+"\n"); 
    System.out.println("skata me fraoules"); 
} 

Ve ile her şeyi denedi Burada kullanıyorum htmlparser sınıf.

public class htmlparser { 

    public htmlparser(){ 
    } 

    public void JsoupParser(String url) throws IOException{ 
     Document doc = Jsoup.connect(url).get(); 
     Elements newsHeadlines = doc.select("#mp-itn b a"); 
     System.out.println(doc.title()); 

     BetParser parserItem = new BetParser(); 

     parserItem.appendText(doc.title()); 
    } 
} 
+0

, (http://www.oracle.com/technetwork/java/codeconventions-135099.html) [Java adlandırma] Aşağıdaki başlayın. Ve 'addendText'inizde' textArea1 'argümanı yerine' textArea 'öğesini etkiliyorsunuz. – aribeiro

+0

Metni appendText yönteminde, her iki başvurunuzda, eklediğiniz iletide ve metin alanında ekleyeceksiniz. Bu durumda, ikinci argüman bir JTextArea sınıfı değil gibi görünüyor. Tam olarak ne tür bir hata yaparsın? Lütfen hatayı yığın izlemeyle iletin. –

+0

dediğim gibi ben bu argüman ile her şeyi kontrol ettim, sadece textArea olduğunu unuttum, textArea1 aynı argümanı, ben aynı textarea görebildiğim gibi append çağırdığınızda ben jtext döndüren getTExt var. Ve bitirmek için, çerçevemde hiçbir şey yok. Ama konsolumda baskı ln iyi çalışıyor. Bu nedenle, hmtl ayrıştırıcı, yöntemi doğru olarak çağırır, ancak textArea eki çalışmaz. Yukarıdaki okursanız – VeniVidiVici

cevap

-1

Ben kodunuzu test etmedim ama sen appendText() geçmek değişkeni başvuran fark ettik; bu: o textArea var textArea1

public void appendText(String msg, JTextArea textArea1){ 

oluyor ve burada İşte

textArea.append(msg+"\n"); 

Sorun bu bölüm mü?

+0

Bunu kaldırmak istiyorum, aynı değişken – VeniVidiVici

0

Burada BetParser bir örneğini oluştururken varsayalım:

public void createAndShowGUI() { 
//some code here for the gui 

Eğer öyleyse, sadece bir parametre olarak ilkini geçen JsoupParser(String url) tekrar oluşturabilirsiniz yoktur. Yani yeni adres JsoupParser böyle olacaktır:

public void JsoupParser(String url, BetParser parserItem) throws IOException{ 

    Document doc = Jsoup.connect(url).get(); 
    Elements newsHeadlines = doc.select("#mp-itn b a"); 
    System.out.println(doc.title()); 

    parserItem.appendText(doc.title(), parserItem.getText()); 

} 
+0

Hayır, bu örnek oluşturmak için – VeniVidiVici

+0

gui sınıfında 'JsoupParser' sadece 'BetParser' oluşturma? Eğer biraz farklı Ty – rdonuk

+0

Ben, sorunuz arkadaşım ve bedeli olamaz. JsoupParser'de boş olanı çağırıyorsunuz. Herhangi bir yerden 'public BetParser (JTextArea textArea) 'diyor musunuz? Bunu soruyorum çünkü textArea'dan şüpheleniyorum.ekle (msg + "\ n"); 'bu metinArea, farklı bir örnek, ilk önce oluşturulan değil. – VeniVidiVici

İlgili konular