0

私は少し立ち往生している割り当てを行っています。私にはこれらの要件があります:

  • BorderLayoutを使用した1フレーム
  • パネル上の2つのボタン
  • 2つのボタンをSOUTH領域に配置するGridLayoutを備えた1つのパネル
  • 新しいフレームに1つのFileChooser
  • 1CENTRALリージョンのTextArea
  • 1プログラムがNORTH地域で何をするかを示すラベル

一時フォルダから2つのファイルから入力を取得し、画面中央のテキストフィールドに読み込みます。

両方のボタンが表示されない理由がわかりません。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class P_Supplemental_11 extends JFrame {

JPanel jpnl1 = new JPanel();
JButton jbtReadFile1 = new JButton("Get Student Names");
JButton jbtReadFile2 = new JButton("Get Student Grades");
JTextField jtxtFilePath = new JTextField();
JLabel jlblDesc = new JLabel("Enter the file name here:");
JTextArea jtxtAfileContents = new JTextArea();

P_Supplemental_11() {
    this.setLayout(new BorderLayout(5, 10));
    jpnl1.setLayout(new GridLayout(2, 2));
    jpnl1.add(jlblDesc);
    jpnl1.add(jtxtFilePath);
    add(jpnl1, BorderLayout.NORTH);
    add(jtxtAfileContents, BorderLayout.CENTER);



    add(jbtReadFile1, BorderLayout.SOUTH);
    jbtReadFile1.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent evt) {

         jbtReadFileActionPerformed(evt);
     }

    });

    add(jbtReadFile2, BorderLayout.SOUTH);
    jbtReadFile2.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent evt) {

         jbtReadFileActionPerformed2(evt);
     }

    });
  } // end constructor


 private void jbtReadFileActionPerformed(ActionEvent evt) {
    try {
        File inFile = new File("c:/temp/studentnames.txt");
        Scanner input = new Scanner(inFile);
        String fileContents = "";
        while(input.hasNext()) {
            fileContents+= input.nextLine() + "\n";
        } // end while

        jtxtAfileContents.setText(fileContents);
        input.close();




    } // end action method for jbtReadFile button
    catch (FileNotFoundException ex) {
    Logger.getLogger(P_Supplemental_11.class.getName()).log(Level.SEVERE, null,            ex);
    }
}

private void jbtReadFileActionPerformed2(ActionEvent evt) {
    try {
        File inFile = new File("c:/temp/studentscores.txt");
        Scanner input = new Scanner(inFile);
        String fileContents = "";
        while(input.hasNext()) {
            fileContents+= input.nextLine() + "\n";
        } // end while
        input.close();
        jtxtAfileContents.setText(fileContents);





    } // end action method for jbtReadFile button
    catch (FileNotFoundException ex) {
        Logger.getLogger(P_Supplemental_11.class.getName()).log(Level.SEVERE, null,    
 ex);
    }
}


 public static void main(String[] args) {
    P_Supplemental_11 frame = new P_Supplemental_11();
    frame.setTitle("P_Supplemenetal_10");
    frame.setSize(410, 520);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
}
4

1 に答える 1

2

割り当てで指定されGridLayoutた場所にが付いているパネルを使用していません。BorderLayout.SOUTH

2つのボタンを同じ場所で共有することはできません。両方BorderLayoutを同時に表示できます。

add(jbtReadFile1, BorderLayout.SOUTH);

add(jbtReadFile2, BorderLayout.SOUTH);
于 2012-11-07T20:22:03.620 に答える