Sina.iRoid
شنبه 10 آبان 1393, 20:10 عصر
سلام دوستان. ممنون میشم اگر راهنماییم کنید.
من می خوام ابتدا نام یک فایل و از کاربر دریافت کنم و بعد از اینکه برنامه چک میکنه که اون آدرسی که دریافت شده یه فایل هست، نام جدید و از کاربر می خواد که وارد کنه تا اون فایل و rename کنه.
من در حالت کلی اینکار و می دونم چه طور باید انجام بدم. اما من دارم سعی می کنم که برنامه رو شی گرا بنویسم. یعنی یه کلاس جدا برای انجام عملیات rename کردن و یه کلاس برای دریافت ورودی از کاربرد. (من اصلا نمی خوام که داخل کلاسی که برای rename کردن ایجاد کردم، از کاربرورودی بگیرم). من کدم و به صورت زیر نوشتم اما نمیدونم که اشکال کار کجاست که شرط داخل دستور if اجرا نمیشه و هی نام فایل و از کاربر می خواد. ممنون میشم اگر راهنماییم کنید:
کد کلاس RenameFile:
import java.io.File;
import javax.swing.JOptionPane;
public class RenameFile {
private String firstFileName;
private String secondFileName;
//Constructor
public RenameFile(String firstFileName) {
setFirstFileName(firstFileName);
File mainFileName = new File(firstFileName);
if (mainFileName.isFile()) {
InputClass inputClass = new InputClass();
inputClass.secondFileName();
String mainFileNamePath = mainFileName.getParent();
File newFileName = new File(mainFileNamePath + "\\" + secondFileName);
mainFileName.renameTo(newFileName);
}else {
JOptionPane.showMessageDialog(null, "Sorry, your address does not a file.");
System.exit(0);
}
}
public RenameFile() {
}
//Getter and Setter
public String getMainFileName(){
return firstFileName;
}
public void setFirstFileName(String firstFileName){
this.firstFileName = firstFileName;
}
public String getSecondName(){
return secondFileName;
}
public void setSecondName(String secondName){
this.secondFileName = secondName;
}
}
کد کلاس InputClass:
import javax.swing.JOptionPane;
public class InputClass extends RenameFile{
//Constructor
public InputClass() {
super
(
JOptionPane.showInputDialog("Enter file name")
);
}
//method to get secondFileName
public void secondFileName(){
String newName = JOptionPane.showInputDialog("Enter new name");
setSecondName(newName);
}
}
و کد کلاس اصلی:
public class DriverClass {
public static void main(String[] args) {
new InputClass();
}
}
همانطور که مشاهده می کنید، خواستم که وقتی شرط if اجرا میشه، یه آبجکت از کلاس InputClass ساخته بشه و بعد با استفاده از اون آبجکت متدی که در کلاس InputClass هست اجرا بشه. اما اصلا این متد اجرا نمیشه.(خیلی در این مورد فک کردم اما به نتیجه نرسیدم).
ممنون میشم اگر راهنماییم کنید.
من می خوام ابتدا نام یک فایل و از کاربر دریافت کنم و بعد از اینکه برنامه چک میکنه که اون آدرسی که دریافت شده یه فایل هست، نام جدید و از کاربر می خواد که وارد کنه تا اون فایل و rename کنه.
من در حالت کلی اینکار و می دونم چه طور باید انجام بدم. اما من دارم سعی می کنم که برنامه رو شی گرا بنویسم. یعنی یه کلاس جدا برای انجام عملیات rename کردن و یه کلاس برای دریافت ورودی از کاربرد. (من اصلا نمی خوام که داخل کلاسی که برای rename کردن ایجاد کردم، از کاربرورودی بگیرم). من کدم و به صورت زیر نوشتم اما نمیدونم که اشکال کار کجاست که شرط داخل دستور if اجرا نمیشه و هی نام فایل و از کاربر می خواد. ممنون میشم اگر راهنماییم کنید:
کد کلاس RenameFile:
import java.io.File;
import javax.swing.JOptionPane;
public class RenameFile {
private String firstFileName;
private String secondFileName;
//Constructor
public RenameFile(String firstFileName) {
setFirstFileName(firstFileName);
File mainFileName = new File(firstFileName);
if (mainFileName.isFile()) {
InputClass inputClass = new InputClass();
inputClass.secondFileName();
String mainFileNamePath = mainFileName.getParent();
File newFileName = new File(mainFileNamePath + "\\" + secondFileName);
mainFileName.renameTo(newFileName);
}else {
JOptionPane.showMessageDialog(null, "Sorry, your address does not a file.");
System.exit(0);
}
}
public RenameFile() {
}
//Getter and Setter
public String getMainFileName(){
return firstFileName;
}
public void setFirstFileName(String firstFileName){
this.firstFileName = firstFileName;
}
public String getSecondName(){
return secondFileName;
}
public void setSecondName(String secondName){
this.secondFileName = secondName;
}
}
کد کلاس InputClass:
import javax.swing.JOptionPane;
public class InputClass extends RenameFile{
//Constructor
public InputClass() {
super
(
JOptionPane.showInputDialog("Enter file name")
);
}
//method to get secondFileName
public void secondFileName(){
String newName = JOptionPane.showInputDialog("Enter new name");
setSecondName(newName);
}
}
و کد کلاس اصلی:
public class DriverClass {
public static void main(String[] args) {
new InputClass();
}
}
همانطور که مشاهده می کنید، خواستم که وقتی شرط if اجرا میشه، یه آبجکت از کلاس InputClass ساخته بشه و بعد با استفاده از اون آبجکت متدی که در کلاس InputClass هست اجرا بشه. اما اصلا این متد اجرا نمیشه.(خیلی در این مورد فک کردم اما به نتیجه نرسیدم).
ممنون میشم اگر راهنماییم کنید.