有关学生分组的java课程设计,下面是一部分程序,真的很急,求高手解答!!!先谢谢各位了!
importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;publiccla...
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class TextAreaDemo extends JFrame implements ActionListener{
private JButton jbtView = new JButton("View");
private JButton jbtOk = new JButton("OK");
private JTextField jtfFileName = new JTextField(20);
private JTextArea jtaFile =new JTextArea();
private JScrollPane jsp = new JScrollPane(jtaFile);
private JPanel p=new JPanel();
private JFileChooser chooser=new JFileChooser();
private JLabel jlbStatus = new JLabel();
public TextAreaDemo(){
p.setLayout(new BorderLayout());
p.add(new JLabel("FileName"),BorderLayout.WEST);
p.add(jtfFileName,BorderLayout.CENTER);
JPanel jp=new JPanel();
jp.add(jbtOk);jp.add(jbtView);
p.add(jp,BorderLayout.EAST);
getContentPane().add(jsp,BorderLayout.CENTER);
getContentPane().add(p,BorderLayout.NORTH);
getContentPane().add(jlbStatus,BorderLayout.SOUTH);
jlbStatus.setForeground(Color.red);
jtaFile.setLineWrap(true);
jbtView.addActionListener(this);
jbtOk.addActionListener(this);
jtfFileName.addActionListener(this);
setTitle("Text Area Demo");
setSize(400,280);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jbtView )
open();
if(e.getSource()==jbtOk || e.getSource()==jtfFileName)
showFile();
}
private void showFile(){
BufferedReader inFile=null;
String fileName=jtfFileName.getText().trim();
String inLine;
try{
inFile=new BufferedReader(new FileReader(fileName));
while((inLine=inFile.readLine())!=null){
jtaFile.append(inLine+'\n');
}
jlbStatus.setText(fileName+" Opened");
}catch(FileNotFoundException ex){
jlbStatus.setText("File not found:"+fileName);
}catch(IOException ex){
jlbStatus.setText(ex.getMessage());
}finally{
try{
if(inFile!=null)
inFile.close();
}catch(IOException ex){
System.out.println(ex.getMessage());
}
}
}
private void open(){
if(chooser.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){
File file = chooser.getSelectedFile();
try{
BufferedInputStream in=new BufferedInputStream(
new FileInputStream(file));
byte[] b=new byte[in.available()];
in.read(b,0,b.length);
jtaFile.append(new String(b,0,b.length));
in.close();
jlbStatus.setText(file.getName()+" Opened");
}catch(IOException ex){
jlbStatus.setForeground(Color.red);
jlbStatus.setText("Error opening "+file.getName());
}
}
}
public static void main(String args[]){
TextAreaDemo frame = new TextAreaDemo();
}
}
您所需做的就是在其中添加一部分程序。按view实现浏览文件,将选择的文件名称显示在ok前的面板中,按ok执行程序。将分组结果显示在窗口里。
文件内容为27名学生的姓名,竖着排列,可以加学号,也可以不加。随机分组,三人一组。
我给出的程序是可以执行的,它实现的是从本地上读入一个文本,将文本内容显示在弹出的面板中。
您只需添加随机分组的程序,删掉显示文本的程序即可。
或者告诉我随机分组的程序如何添加到显示窗口的程序中。 展开
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class TextAreaDemo extends JFrame implements ActionListener{
private JButton jbtView = new JButton("View");
private JButton jbtOk = new JButton("OK");
private JTextField jtfFileName = new JTextField(20);
private JTextArea jtaFile =new JTextArea();
private JScrollPane jsp = new JScrollPane(jtaFile);
private JPanel p=new JPanel();
private JFileChooser chooser=new JFileChooser();
private JLabel jlbStatus = new JLabel();
public TextAreaDemo(){
p.setLayout(new BorderLayout());
p.add(new JLabel("FileName"),BorderLayout.WEST);
p.add(jtfFileName,BorderLayout.CENTER);
JPanel jp=new JPanel();
jp.add(jbtOk);jp.add(jbtView);
p.add(jp,BorderLayout.EAST);
getContentPane().add(jsp,BorderLayout.CENTER);
getContentPane().add(p,BorderLayout.NORTH);
getContentPane().add(jlbStatus,BorderLayout.SOUTH);
jlbStatus.setForeground(Color.red);
jtaFile.setLineWrap(true);
jbtView.addActionListener(this);
jbtOk.addActionListener(this);
jtfFileName.addActionListener(this);
setTitle("Text Area Demo");
setSize(400,280);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jbtView )
open();
if(e.getSource()==jbtOk || e.getSource()==jtfFileName)
showFile();
}
private void showFile(){
BufferedReader inFile=null;
String fileName=jtfFileName.getText().trim();
String inLine;
try{
inFile=new BufferedReader(new FileReader(fileName));
while((inLine=inFile.readLine())!=null){
jtaFile.append(inLine+'\n');
}
jlbStatus.setText(fileName+" Opened");
}catch(FileNotFoundException ex){
jlbStatus.setText("File not found:"+fileName);
}catch(IOException ex){
jlbStatus.setText(ex.getMessage());
}finally{
try{
if(inFile!=null)
inFile.close();
}catch(IOException ex){
System.out.println(ex.getMessage());
}
}
}
private void open(){
if(chooser.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){
File file = chooser.getSelectedFile();
try{
BufferedInputStream in=new BufferedInputStream(
new FileInputStream(file));
byte[] b=new byte[in.available()];
in.read(b,0,b.length);
jtaFile.append(new String(b,0,b.length));
in.close();
jlbStatus.setText(file.getName()+" Opened");
}catch(IOException ex){
jlbStatus.setForeground(Color.red);
jlbStatus.setText("Error opening "+file.getName());
}
}
}
public static void main(String args[]){
TextAreaDemo frame = new TextAreaDemo();
}
}
您所需做的就是在其中添加一部分程序。按view实现浏览文件,将选择的文件名称显示在ok前的面板中,按ok执行程序。将分组结果显示在窗口里。
文件内容为27名学生的姓名,竖着排列,可以加学号,也可以不加。随机分组,三人一组。
我给出的程序是可以执行的,它实现的是从本地上读入一个文本,将文本内容显示在弹出的面板中。
您只需添加随机分组的程序,删掉显示文本的程序即可。
或者告诉我随机分组的程序如何添加到显示窗口的程序中。 展开
2个回答
展开全部
个人认为:你可以在
inFile=new BufferedReader(new FileReader(fileName));
while((inLine=inFile.readLine())!=null){
jtaFile.append(inLine+'\n');
line++;// 用来记录文件总共多少行
}
然后用随机函数产生的数强制转型为int或long型数字num,rline = num%line;读到这一行才显示出来,循环一次,line--;另设一变量,每三行打印一空行,知道line=0为止。貌似有点浪费cpu,看看有没有更好的办法
inFile=new BufferedReader(new FileReader(fileName));
while((inLine=inFile.readLine())!=null){
jtaFile.append(inLine+'\n');
line++;// 用来记录文件总共多少行
}
然后用随机函数产生的数强制转型为int或long型数字num,rline = num%line;读到这一行才显示出来,循环一次,line--;另设一变量,每三行打印一空行,知道line=0为止。貌似有点浪费cpu,看看有没有更好的办法
追问
问题已经解决了。不过还是谢谢你的回答。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询