私はいくつかの似たような答えを見つけましたが、この問題を解決するのに役立っていません。何らかの理由で、私の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;
}
}
ありがとうございました。私はなぜそれがhorizontalScrollの値を必要としたのか分からないが、それはトリックを行うように見えた。 ty –
@BallaBaby [コンストラクタのドキュメント](http://docs.oracle.com/javase/9/docs/api/javax/swing/JScrollPane.html#constructor.summary)には、コンストラクタが存在しないことが明確に示されているため、引数として単一のintを使用します。 – VGR
@VGRよく見ると –