導航:首頁 > 文件教程 > javagui文件另存為

javagui文件另存為

發布時間:2023-01-02 14:37:00

java&GUI&文件保存

用ide軟體編程比較快,比較容易用的有netbeans
,直接可以選擇gui的工具就可以完成界面了。。。
然後在按鍵上加入監聽就完成了。。。

② JAVA GUI問題。如何觸動按鈕後彈出文件瀏覽器和文件名選擇框,選擇保存目錄

使用javaswing中的JFileChooser類就ok了
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;

public class WebJianXuanZe {

public static void fileChooser() {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
//設置文件類型
chooser.setFileFilter(filter);
//打開選擇器面板
int returnVal = chooser.showOpenDialog(new JPanel());
//保存文件從這里入手,輸出的是文件名
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("你打開的文件是: " +
chooser.getSelectedFile().getName());
}
}
public static void main(String[] args) {
fileChooser();
}
}

建議你可以翻java API 。新童鞋的話一定要學會用API、善於用API,盡量獨立解決問題,這樣能夠加深映像,並且對子什麼也是一個激勵!~

③ java圖形用戶界面的選擇一個文件並復制(另存為)的代碼,麻煩了。

可以給JTextField t1 一個初始路徑,那樣,如果每次都是備份同一個文件直接點保存選路徑就可以,如果想備份其他文件再選其他文件就可以了

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class BakTo extends JFrame implements ActionListener {
JLabel l1 = new JLabel("原始文件");
JTextField t1 = new JTextField(40);
JButton b1 = new JButton("選擇");
JLabel l2 = new JLabel("保存目錄");
JTextField t2 = new JTextField(40);
JButton b2 = new JButton("保存");
JFileChooser j1 = new JFileChooser();
JFileChooser j2 = new JFileChooser();
static File fileFlag = new File("");

public BakTo() {
setBounds(200, 200, 600, 140);
setLayout(new FlowLayout());
add(l1);
add(t1);
add(b1);
add(l2);
add(t2);
add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
setResizable(false);
setVisible(true);
validate();
}

public void actionPerformed(ActionEvent e) {
try {

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

int n = j1.showOpenDialog(null);
String filename = j1.getSelectedFile().toString();
if (n == JFileChooser.APPROVE_OPTION) {
t1.setText(filename);
fileFlag = new File(filename);
}

}

else if (e.getSource() == b2) {
j2.setCurrentDirectory(fileFlag);// 設置打開對話框的默認路徑
j2.setSelectedFile(fileFlag);// 設置選中原來的文件
int n = j2.showSaveDialog(null);
String filename2 = j2.getSelectedFile().toString();
if(filename2.indexOf(".")!=-1){
filename2=filename2.substring(0,filename2.indexOf("."));
}

// 以下兩句是獲得原文件的擴展名
int flag = t1.getText().lastIndexOf(".");
String kuozhan = t1.getText().substring(flag);
String date = getDate();// 取得當前日期
if (n == JFileChooser.APPROVE_OPTION) {
t2.setText(filename2 +date+ kuozhan);// 把日期和擴展名添加到原來文件的後面
}

int b;
char[] t = new char[25];

// 這里我改用了文件流
FileInputStream input = new FileInputStream(t1.getText());

FileOutputStream output = new FileOutputStream(filename2+date
+ kuozhan);// 把擴展名添加到原來文件的後面

int in = input.read();
while (in != -1) {
output.write(in);
in = input.read();
}
input.close();
output.close();

}
} catch (Exception x) {
System.out.println(x);
}
}

public String getDate() {
Calendar rightNow = Calendar.getInstance();
System.out.println(rightNow.toString());
int year = rightNow.YEAR;
int date = rightNow.DATE;
int month = rightNow.MONTH + 1;
String d = year + "年" + month + "月" + date + "日";
return d;
}

public static void main(String args[]) {
BakTo c1 = new BakTo();
}

}

④ 用JAVA編寫一個GUI記事本程序,實現文本的輸入,保存,修改,打開操作

代碼如下:

importjava.io.*;
importjava.awt.*;
importjava.awt.event.*;

publicclassjtxtfm{
publicstaticvoidmain(Stringargs[]){
jtxtfrmfm=newjtxtfrm();
}
}
{
FileDialogop,sv;
Buttonbtn1,btn2,btn3;
TextAreatarea;
jtxtfrm(){
super("讀寫文件");
setLayout(null);
setBackground(Color.cyan);
setSize(600,300);
setVisible(true);
btn1=newButton("打開");
btn2=newButton("保存");
btn3=newButton("關閉");
tarea=newTextArea("");
add(btn1);add(btn2);add(btn3);add(tarea);
tarea.setBounds(30,50,460,220);
btn1.setBounds(520,60,50,30);
btn2.setBounds(520,120,50,30);
btn3.setBounds(520,180,50,30);
op=newFileDialog(this,"打開",FileDialog.LOAD);
sv=newFileDialog(this,"保存",FileDialog.SAVE);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
addWindowListener(
newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
setVisible(false);
System.exit(0);
}
}
);
}

publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn1){
Stringstr;
op.setVisible(true);
try{
Filef1=newFile(op.getDirectory(),op.getFile());
FileReaderfr=newFileReader(f1);
BufferedReaderbr=newBufferedReader(fr);
tarea.setText("");
while((str=br.readLine())!=null)tarea.append(str+' ');
fr.close();
}
catch(Exceptione1)
{}
}

if(e.getSource()==btn2){
sv.setVisible(true);
try{
Filef1=newFile(sv.getDirectory(),sv.getFile());
FileWriterfw=newFileWriter(f1);
BufferedWriterbw=newBufferedWriter(fw);
Stringgt=tarea.getText();
bw.write(gt,0,gt.length());
bw.flush();
fw.close();
}
catch(Exceptione2)
{}
}

if(e.getSource()==btn3){
System.exit(0);
}

}
}

效果圖:

⑤ 用java文件對話框實現文件另存為

我覺得用一個文件復制的類就可以實現備份,我大概寫了一個,基本功能可以實現,但是總覺得好怪

你可以給JTextField t1 一個初始路徑,那樣,如果每次都是備份同一個文件直接點保存選路徑就可以,如果想備份其他文件再選其他文件就可以了

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class BakTo extends JFrame implements ActionListener {
JLabel l1 = new JLabel("原始文件");
JTextField t1 = new JTextField(40);
JButton b1 = new JButton("選擇");
JLabel l2 = new JLabel("保存目錄");
JTextField t2 = new JTextField(40);
JButton b2 = new JButton("保存");
JFileChooser j1 = new JFileChooser();
JFileChooser j2 = new JFileChooser();
static File fileFlag = new File("");

public BakTo() {
setBounds(200, 200, 600, 140);
setLayout(new FlowLayout());
add(l1);
add(t1);
add(b1);
add(l2);
add(t2);
add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
setResizable(false);
setVisible(true);
validate();
}

public void actionPerformed(ActionEvent e) {
try {

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

int n = j1.showOpenDialog(null);
String filename = j1.getSelectedFile().toString();
if (n == JFileChooser.APPROVE_OPTION) {
t1.setText(filename);
fileFlag = new File(filename);
}

}

else if (e.getSource() == b2) {
j2.setCurrentDirectory(fileFlag);// 設置打開對話框的默認路徑
j2.setSelectedFile(fileFlag);// 設置選中原來的文件
int n = j2.showSaveDialog(null);
String filename2 = j2.getSelectedFile().toString();
if(filename2.indexOf(".")!=-1){
filename2=filename2.substring(0,filename2.indexOf("."));
}

// 以下兩句是獲得原文件的擴展名
int flag = t1.getText().lastIndexOf(".");
String kuozhan = t1.getText().substring(flag);
String date = getDate();// 取得當前日期
if (n == JFileChooser.APPROVE_OPTION) {
t2.setText(filename2 +date+ kuozhan);// 把日期和擴展名添加到原來文件的後面
}

int b;
char[] t = new char[25];

// 這里我改用了文件流
FileInputStream input = new FileInputStream(t1.getText());

FileOutputStream output = new FileOutputStream(filename2+date
+ kuozhan);// 把擴展名添加到原來文件的後面

int in = input.read();
while (in != -1) {
output.write(in);
in = input.read();
}
input.close();
output.close();

}
} catch (Exception x) {
System.out.println(x);
}
}

public String getDate() {
Calendar rightNow = Calendar.getInstance();
System.out.println(rightNow.toString());
int year = rightNow.YEAR;
int date = rightNow.DATE;
int month = rightNow.MONTH + 1;
String d = year + "年" + month + "月" + date + "日";
return d;
}

public static void main(String args[]) {
BakTo c1 = new BakTo();
}

}

⑥ java gui界面復制文件到別的目錄,並且和進度條保持一致

importjavax.swing.*;
importjavax.swing.filechooser.FileFilter;
importjavax.swing.text.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.nio.file.*;
/**
*格子繪圖演示
*@authorhardneedl
*/
{
=newDimension(600,400);

publicDimensiongetMinimumSize(){returnSIZE;}
publicDimensiongetMaximumSize(){returnSIZE;}
(){returnSIZE;}

;
privateJTextFieldstatusBar;
privateJButtonsrcBtn,targetBtn,performBtn;
privateFilesrcDir,targetDir;
privateSwingWorkerWorker;
publicStringgetTitle(){return"CopyDemo";}

<Integer,Integer>{
privateJProgressBarbar;
privateJTextComponentstatus;
CopyWorker(JProgressBarbar,JTextComponentstatus){
this.bar=bar;
this.status=status;
addPropertyChangeListener(evt->{
if(evt.getPropertyName().equals("progress")){
bar.setValue((Integer)evt.getNewValue());
}
});
}

()throwsException{
if(srcDir==null){
status.setText("請選源路徑");
return0;
}

if(targetDir==null){
status.setText("請選目標路徑");
return0;
}
File[]files=srcDir.listFiles();
bar.setMaximum(files.length);
bar.setMinimum(0);

inti=0;
for(Filef:files){
try{
Files.(f.toPath(),newFile(targetDir,f.getName()).toPath(),StandardCopyOption.REPLACE_EXISTING);
}catch(IOExceptione){
e.printStackTrace();
}
i++;

publish(i);
setProgress(i);
status.setText(f.getCanonicalPath());
}
returni;
}

}

privateCopyDemo()throwsHeadlessException{
super();
init();
addListeners();
doLay();
}

privatevoidinit(){
progressBar=newJProgressBar();
statusBar=newJTextField();
srcBtn=newJButton("源路徑...");
targetBtn=newJButton("目標路徑...");
performBtn=newJButton("復制"){

publicColorgetForeground(){
returnColor.BLUE;
}
};

Worker=newCopyWorker(progressBar,statusBar);
}

privatevoiddoLay(){
Containercontainer=getContentPane();
container.setLayout(newGridLayout(0,1));
container.add(srcBtn);
container.add(targetBtn);
container.add(performBtn);
container.add(progressBar);
container.add(statusBar);

pack();
setVisible(true);
}

privatevoidaddListeners(){
targetBtn.addActionListener(newAbstractAction(){
;

publicvoidactionPerformed(ActionEvente){
if(fileChooser==null){
fileChooser=newJFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
fileChooser.setFileFilter(newFileFilter(){

publicbooleanaccept(Filef){
returnf.isDirectory();
}

publicStringgetDescription(){
return"目標路徑";
}
});
}


if(fileChooser.showOpenDialog(CopyDemo.this)==JFileChooser.APPROVE_OPTION){
targetDir=fileChooser.getSelectedFile();
}

}
});


srcBtn.addActionListener(newAbstractAction(){
;
publicvoidactionPerformed(ActionEvente){
if(fileChooser==null){
fileChooser=newJFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
fileChooser.setFileFilter(newFileFilter(){

publicbooleanaccept(Filef){
returnf.isDirectory();
}

publicStringgetDescription(){
return"源路徑";
}
});
}

if(fileChooser.showOpenDialog(CopyDemo.this)==JFileChooser.APPROVE_OPTION)
srcDir=fileChooser.getSelectedFile();

}
});

performBtn.addActionListener(newAbstractAction(){

publicvoidactionPerformed(ActionEvente){
Worker.execute();
}
});
}

publicstaticvoidmain(String...args){
System.setProperty("swing.defaultlaf","com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.invokeLater(CopyDemo::new);
}


}

⑦ java gui 如何在一個寫好的java文件中導入別的java文件

你如果要多處使用A的話,A extends JPane就行了,不要直接extends JFrame.
單獨使用的話,就可以new JFrame添加布局再添加A進去,
如果B要用的話,就在B裡面添加A就行了。

⑧ 關於matlab中GUI文件另存為的問題,怎麼感覺save as 功能不對呢

你修改了fig文件後,如果點擊運行,則你修改的內容自動保存進了myGUI.fig和對應的m文件中。所以你再另存的時候發現myGUI.fig和myGUI_2.fig的一樣了。
GUI中的m文件是依賴於同名的fig文件的,不會因為你創建了一個m文件就會自動生成一個fig文件,只能是創建fig生成m。

⑨ java編寫的記事本的保存和另存為功能

你要的關鍵程序代碼:。(源文件超過10000字,無法粘全在這,要的話,加我)(e.getActionCommand()=="保存"||e.getActionCommand()=="保存為")
{
JFileChooser chooser=new JFileChooser(); //創建文件選擇對話框
int result=chooser.showSaveDialog(frame);
if(result==JFileChooser.APPROVE_OPTION)
{

try
{
FileWriter fout = new FileWriter(chooser.getSelectedFile()); //向磁碟中寫文件
fout.write(jtextpane.getText()+"\r\n");
fout.close();
}
catch (IOException ioex)
{

}
}

}執行效果:

⑩ 如何用Java實現另存為

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class BakTo extends JFrame implements ActionListener {
JLabel l1 = new JLabel("原始文件");
JTextField t1 = new JTextField(40);
JButton b1 = new JButton("選擇");
JLabel l2 = new JLabel("保存目錄");
JTextField t2 = new JTextField(40);
JButton b2 = new JButton("保存");
JFileChooser j1 = new JFileChooser();
JFileChooser j2 = new JFileChooser();
static File fileFlag = new File("");

public BakTo() {
setBounds(200, 200, 600, 140);
setLayout(new FlowLayout());
add(l1);
add(t1);
add(b1);
add(l2);
add(t2);
add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
setResizable(false);
setVisible(true);
validate();
}

public void actionPerformed(ActionEvent e) {
try {

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

int n = j1.showOpenDialog(null);
String filename = j1.getSelectedFile().toString();
if (n == JFileChooser.APPROVE_OPTION) {
t1.setText(filename);
fileFlag = new File(filename);
}

}

else if (e.getSource() == b2) {
j2.setCurrentDirectory(fileFlag);// 設置打開對話框的默認路徑
j2.setSelectedFile(fileFlag);// 設置選中原來的文件
int n = j2.showSaveDialog(null);
String filename2 = j2.getSelectedFile().toString();
if(filename2.indexOf(".")!=-1){
filename2=filename2.substring(0,filename2.indexOf("."));
}

// 以下兩句是獲得原文件的擴展名
int flag = t1.getText().lastIndexOf(".");
String kuozhan = t1.getText().substring(flag);
String date = getDate();// 取得當前日期
if (n == JFileChooser.APPROVE_OPTION) {
t2.setText(filename2 +date+ kuozhan);// 把日期和擴展名添加到原來文件的後面
}

int b;
char[] t = new char[25];

// 這里我改用了文件流
FileInputStream input = new FileInputStream(t1.getText());

FileOutputStream output = new FileOutputStream(filename2+date
+ kuozhan);// 把擴展名添加到原來文件的後面

int in = input.read();
while (in != -1) {
output.write(in);
in = input.read();
}
input.close();
output.close();

}
} catch (Exception x) {
System.out.println(x);
}
}

public String getDate() {
Calendar rightNow = Calendar.getInstance();
System.out.println(rightNow.toString());
int year = rightNow.YEAR;
int date = rightNow.DATE;
int month = rightNow.MONTH + 1;
String d = year + "年" + month + "月" + date + "日";
return d;
}

public static void main(String args[]) {
BakTo c1 = new BakTo();
}

}

閱讀全文

與javagui文件另存為相關的資料

熱點內容
wordpress製作單頁網站導航頁面 瀏覽:277
什麼海外網站可以看限製片 瀏覽:596
指尖見app在哪裡下載 瀏覽:367
java聊天室課程設計 瀏覽:670
responsejavascript 瀏覽:71
如何從殺毒軟體裡面恢復出文件 瀏覽:972
越獄iphone如何備份 瀏覽:124
蘋果四S萬能鑰匙怎麼破不開 瀏覽:603
網路列印機共享怎麼連接 瀏覽:313
fme系統找不到指定文件 瀏覽:301
iphoneid和密碼忘了怎麼辦 瀏覽:238
蘋果電腦優盤里的文件如何加密 瀏覽:284
word標題名和文件名一致 瀏覽:957
excel修改後的文件保持了怎麼恢復 瀏覽:340
社保網路認證怎麼弄 瀏覽:92
蘋果手機怎麼傳數據到新手機相冊 瀏覽:50
5s升級ios92無服務 瀏覽:354
ubuntu翻譯工具 瀏覽:665
wifi安裝教程 瀏覽:398
蘋果有些qq文件打不開 瀏覽:139

友情鏈接