2017-09-28 1 views
-1

私はいくつかの似たような答えを見つけましたが、この問題を解決するのに役立っていません。何らかの理由で、私のcreateMiddlePanelメソッドで、私のJtextArea txaResultsが私に「JTextArea connot」をintに変換すると言う領域を与えています。どんな援助も役に立つでしょう。私はこれがパネルにあることと関係があるのか​​どうかはわかりませんが、なぜ私がエラーを起こすのか他の理由は考えられません。JTextAreaをintに変換する、JscrollでJscrollを発行する

package Tell; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 
import javax.swing.*; 

public class FortuneTellerFrame extends JFrame { 

JPanel pnlTop, pnlMiddle, pnlBottom; 
JButton btnSubmit, btnQuit; 
JLabel lblFortuneTeller, lblPassword; 
JTextField txtFortuneTeller, txtPassword; 
JTextArea txaResults; 
JScrollPane jsp; 
public FortuneTellerFrame() { 
    add(this.createTopPanel(), BorderLayout.NORTH); 
    add(this.createMiddlePanel(), BorderLayout.CENTER); 
    add(this.createBottomPanel(), BorderLayout.SOUTH); 

    // Always set the size of data and the default close operation. 
    // Visibility needs to be set to true to be seen as well 
    this.setSize(400, 300); 
    this.setVisible(true); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


    } 
    private JPanel createTopPanel() 
    { 
     pnlTop = new JPanel(); 
     pnlTop.setLayout(new GridLayout(2,2)); 
     ImageIcon icon = new ImageIcon("ball.jpg"); 
     Image image1 = icon.getImage(); // transform it 
     Image newimg = image1.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH); 
     icon = new ImageIcon(newimg); // transform back 

     JLabel label = new JLabel("Fortune Teller",icon,JLabel.LEFT); 
     label.setHorizontalTextPosition(JLabel.CENTER); 
     label.setVerticalTextPosition(JLabel.BOTTOM); 
     lblPassword = new JLabel("Password: "); 
     txtFortuneTeller = new JTextField(10); 
     txtPassword = new JTextField(10); 

     pnlTop.add(label); 
     pnlTop.add(txtFortuneTeller); 
     pnlTop.add(lblPassword); 
     pnlTop.add(txtPassword); 

     return pnlTop; 
    } 

    private JPanel createMiddlePanel() 
    { 
     pnlMiddle = new JPanel(); 
     txaResults = new JTextArea(10, 30); 
     jsp = new JScrollPane(txaResults, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
     pnlMiddle.add(jsp); 

     return pnlMiddle; 
    } 
    private JPanel createBottomPanel() 
    { 
     pnlBottom = new JPanel(); 
     btnSubmit = new JButton("Read My Fortune!"); 
     btnQuit = new JButton("Quit"); 

     btnQuit.addActionListener(e ->{ 
      System.exit(0); 
     }); 

     btnSubmit.addActionListener(e ->{ 
      String username = this.txtFortuneTeller.getText(); 
      String password = this.txtPassword.getText(); 

      this.txaResults.append("Attempting to login with username " 
        + username + " and password " + password + "\n"); 
     }); 

     pnlBottom.add(btnSubmit); 
     pnlBottom.add(btnQuit); 

     return pnlBottom; 
    } 

}

答えて

0

は、これが私の仕事:

private JPanel createMiddlePanel() 
{ 
    pnlMiddle = new JPanel(); 
    txaResults = new JTextArea(10, 30); 
    jsp = new JScrollPane(txaResults); 
    jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
    pnlMiddle.add(jsp); 

    return pnlMiddle; 
} 
0

私はあなたのコードを試みたが、私はこの行でエラーを得た:

jsp = new JScrollPane(txaResults, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 

JScrollPaneのコンポーネントを期待します2つの整数は、垂直スクロールと水平を指しているので、他の引数を追加すると、 rk、

private JPanel createMiddlePanel() 
    { 
     pnlMiddle = new JPanel(); 
     txaResults = new JTextArea(10, 30); 
     jsp = new JScrollPane(txaResults, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     pnlMiddle.add(jsp); 

     return pnlMiddle; 
    } 
+0

ありがとうございました。私はなぜそれがhorizo​​ntalScrollの値を必要としたのか分からないが、それはトリックを行うように見えた。 ty –

+0

@BallaBaby [コンストラクタのドキュメント](http://docs.oracle.com/javase/9​​/docs/api/javax/swing/JScrollPane.html#constructor.summary)には、コンストラクタが存在しないことが明確に示されているため、引数として単一のintを使用します。 – VGR

+0

@VGRよく見ると –

関連する問題