私はちょうど私のコンピュータ科学のクラスでGUIについて学び始めました。単純なGUIアプリケーションですが、シンボルの追加が見つかりません
GUIアプリケーションを以下のように設計して、次のタスクを実行します。 1.テキストフィールドはデータファイル名用です。ファイル名の長さは5〜10で、ファイル拡張子は.txtを指定しない場合は、有効なファイル名を入力するようユーザーに求めます。 2.データファイルの内容を読み込んで、テキストエリアに表示します。
これは私のコードは、これまで
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
public class FileLoader implements ActionListener {
private final LayoutManager layout;
private JButton loadButton;
private JTextField filename;
private JTextArea display;
public FileLoader()
{
layout = new FlowLayout();
setLayout(layout);
JFrame frame = new JFrame();
JPanel buttonPanel = new JPanel();
loadButton = new JButton("Load File");
filename = new JTextField(10);
buttonPanel.add(filename);
buttonPanel.add(loadButton);
display = new JTextArea(25, 50);
add(new JLabel("File Name: "));
add(filename);
add(new JScrollPane(display));
add(loadButton);
loadButton.addActionListener(this);
}
public void actionPerformed(ActionEvent event) {
try{
String file = filename.getText();
int filesize = file.length();
if (filesize>= 5 && filesize<= 10){
Scanner input = new Scanner(getClass().getResourceAsStream(file));
String DisTXT = " ";
while (input.hasNextLine()){
DisTXT = DisTXT + input.nextLine();
if (input.hasNextLine()){
DisTXT = DisTXT + "\n";
}
}
display.setText(DisTXT);
input.close();
}
else
{
if (filesize< 5){
display.setText("File NAME ERROR: NAME IS TOO SHORT");
}
else {
display.setText("File NAME ERROR: NAME IS TOO LONG");
}
}
}
catch (NullPointerException e) {
display.setText("File not found");
}
}
public static void main(String[] args) {
new FileLoader();
}
}
言うことですが、何らかの理由で、それは、addメソッドを見つけることができない、私は常にそれが自動的に輸入に拾われたと思った、これはそうではありませんか?どのようにこれをixできる? これはかなり軽薄な質問ですが、この部分のコンピュータサイエンスは完全に新しいものです。
とも私は私たちの最後のラボで
layout = new FlowLayout();
setLayout(layout);
を使用し、代わりにそれはグリッドレイアウトでした。それは最後の時間を働いたが、この時間は、誰かが理由を説明してもらえますか?事前にありがとう
あなたの説明から、以前のアプリケーションのMainクラスがJFrameを拡張していたようです。フィールドを呼び出すことなく、さまざまなコンポーネントなどを追加できます。今回は、実装されているインタフェースが青写真としてのみ動作することはもちろん、実装されていないクラスに対してadd()関数を呼び出そうとしています。このアプリケーションでは、JFrameを拡張せず、代わりにJFrameフィールドを作成します。あなたのアプリを正しく理解している場合は、単に「フレーム」を追加してください。あなたのadd()とsetLayout()の前に。 – Miekpeeps