java窗口打开文件_按下按钮并在Java中的新窗口中打开文件

这个博客展示了如何使用Java Swing创建一个GUI应用程序,该程序从文本文件中读取数据,并在JFrame中显示。文本文件包含人员信息,如姓名,程序将这些信息填充到多个文本字段中。当用户点击编辑按钮时,一个新的窗口`ShowDetails`会被打开,但目前并未实现显示详细信息的功能。
摘要由CSDN通过智能技术生成

我创建了一个JFrame并放置了一个文本字段和按钮.在文本字段中我放置了一个从文本文件读取的名称.知道我想单击按钮并打开一个已知的窗口,我想在其中放置该名称的其他信息相同的文件.

这是我的代码:

这是我的主框架

package Frontend;

import Business.ShowDetails;

import model.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.*;

import javax.swing.*;

public class Gui {

//String file=" ";

private JFrame frame;

private JPanel panel1 ;

private JPanel panel2;

private JPanel panel;

private JTextField nume1;

private JTextField nume2;

private JTextField nume3;

private JTextField nume4;

private JTextField nume5;

private JButton edit1;

private JButton edit2;

private JButton edit3;

private JButton edit4;

private JButton edit5;

private final String file = "Persoane.txt";

public Gui(){

fereastra();

readFile(file);

}

public void fereastra(){

frame = new JFrame();

panel = new JPanel(new FlowLayout());

panel1 = new JPanel(new GridLayout(5,2,1,7));

panel2 = new JPanel(new GridLayout(5,2,1,1));

nume1 = new JTextField(15);

nume2 = new JTextField(15);

nume3 = new JTextField(15);

nume4 = new JTextField(15);

nume5 = new JTextField(15);

edit1 = new JButton("Edit");

edit2 = new JButton("Edit");

edit3 = new JButton("Edit");

edit4 = new JButton("Edit");

edit5 = new JButton("Edit");

panel1.add(nume1);

panel2.add(edit1);

panel1.add(nume2);

panel2.add(edit2);

panel1.add(nume3);

panel2.add(edit3);

panel1.add(nume4);

panel2.add(edit4);

panel1.add(nume5);

panel2.add(edit5);

ButtonHandler handler = new ButtonHandler();

edit1.addActionListener(handler);

edit2.addActionListener(handler);

panel.add(panel1);

panel.add(panel2);

frame.add(panel);

frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);

frame.setSize(300, 200);

frame.setVisible(true);

}

public String readFile(String filename){

try{

String line="";

Persoana p ;

BufferedWriter bw = null;

ArrayList listOfPersons;

//creez o lista de persoane

listOfPersons = new ArrayList();

//citesc fisierul Persoane.txt

FileReader file1 =new FileReader(filename);

BufferedReader br1 = new BufferedReader(file1);

while((line = br1.readLine())!= null){

//elimin prima linie din fisier

if(!line.trim().contains("ID")){

String[] attributes = line.split(";");// separ fiecare linie in tokenuri

p = new Persoana(); // make a new person

p.setId(Integer.parseInt(attributes[0]));

p.setNume(attributes[1]);

p.setPrenume(attributes[2]);

p.setDataNasterii(attributes[3]);

p.setProfesie(attributes[4]);

listOfPersons.add(p);

}

}

int i = 0;

while (i < listOfPersons.size()){

if(i == 0){

p = listOfPersons.get(i);

nume1.setText(p.getNume() + " " +p.getPrenume());

nume1.getText();

}

if(i == 1){

p = listOfPersons.get(i);

nume2.setText(p.getNume() + " " +p.getPrenume());

nume2.getText();

}

if(i == 2){

p = listOfPersons.get(i);

nume3.setText(p.getNume() + " " +p.getPrenume());

nume3.getText();

}

if(i == 3){

p = listOfPersons.get(i);

nume4.setText(p.getNume() + " " +p.getPrenume());

nume4.getText();

}

if(i == 4){

p = listOfPersons.get(i);

nume5.setText(p.getNume() + " " +p.getPrenume());

nume5.getText();

}

i++;

}

br1.close();

}

catch(IOException ex){

System.out.println("Error opening file.");

System.exit(1);

}

return file;

}

// inner class for button event handling

private class ButtonHandler implements ActionListener {

public void actionPerformed(ActionEvent e) {

if (e.getSource() == edit1) {

new ShowDetails();

}

if (e.getSource() == edit2) {

new ShowDetails();

}

}

}

}

这是我的第二个cclass:

package Business;

import Frontend.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class ShowDetails extends JFrame{

Gui gui;

public ShowDetails(){

this.gui = gui;

fereastra();

}

public void fereastra(){

JPanel panel = new JPanel(new GridLayout(2, 2));

JTextArea text = new JTextArea();

text.setEditable(true);

text.setText(gui.readFile("Persoane.txt"));

text.getText();

panel.add(text);

getContentPane().add(panel);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//setLocation(50,50);

setSize(300,200);

setResizable(false);

// setVisible(true);

show();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值