ورود

View Full Version : کار با فایل های html



arezo1174
پنج شنبه 15 تیر 1391, 10:34 صبح
سلام. عیدتون مبارک
چه طوری میتونیم محتوای یه jTextfield رو به یه صفحه ی وب منتقل کنیم؟؟؟
یا مثلا یه تصویری توی فرممون داریم و میخایم که اون تصویر به صفحه ی وب منتقل بشه؟؟؟
ببخشید هدف من کار کردن با jsp نیست بلکه کار با فایله.
با سباس فروان.

spiderman200700
پنج شنبه 15 تیر 1391, 11:49 صبح
سلام.
میتونید تگ های html رو به ابتدا و انتهای فایلتون اضافه کنیدو رشته ی حاصل رو در یه فایل با پسوند html ذخیره کنید.
مثلا:
String data=jTextField.getText();
data="<html><body>"+data+"</body></html>";
در نهایت میتونید data رو توی یه فایل با پسوند html بریزید
موفق باشید

arezo1174
جمعه 16 تیر 1391, 15:27 عصر
سلام. مرسی از جوابتون، تست میکنم امیدوارم گیر سه بیچ نده.

spiderman200700
جمعه 16 تیر 1391, 17:55 عصر
خواهش میکنم. موفق باشید

arezo1174
جمعه 16 تیر 1391, 20:29 عصر
سلام. قبل از بررسی مشکل قبلی برام یه مشکل دیگه بیش اومده:گریه::گریه::گریه:

ورژن نت بینز من قبلا 6.0.1 بود بنا به دلایلی مجبور شدم که به 6.8 تغییر بدم حالا بروژه ام اجرا نمیشه قبلا هیچ مشکلی نبود ولی حالا داره خطاهای زیر رو میده مثلا یه کلاس نوشته بودم که با URI یه صفحه ی HTML باز میشد ولی الان داره خطای زیر رو میده امکانش هست که یه نگاه کوچلو بندازید؟؟؟



java.io.IOException: Failed to open film.htm. Error message: The system cannot find the file specified.

at sun.awt.windows.WDesktopPeer.ShellExecute(WDesktop Peer.java:59)
at sun.awt.windows.WDesktopPeer.browse(WDesktopPeer.j ava:52)
at java.awt.Desktop.browse(Desktop.java:368)
at movi_maneger.Export1.web(Export1.java:15)
at movi_maneger.NewJFrame.jButton5ActionPerformed(New JFrame.java:229)
at movi_maneger.NewJFrame.access$400(NewJFrame.java:2 1)
at movi_maneger.NewJFrame$5.actionPerformed(NewJFrame .java:102)
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.jav a:6263)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3267)
at java.awt.Component.processEvent(Component.java:602 8)
at java.awt.Container.processEvent(Container.java:204 1)
at java.awt.Component.dispatchEventImpl(Component.jav a:4630)
at java.awt.Container.dispatchEventImpl(Container.jav a:2099)
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:4168)
at java.awt.Container.dispatchEventImpl(Container.jav a:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478 )
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:122

arezo1174
جمعه 16 تیر 1391, 20:31 عصر
یا اینکه وقتی میخام توی دیتابیسم درج بکنم خطای زیر رو بهم میده در ضمن من مجبور شدم که sql server رو دوباره نصب کنم ولی همون ورژن قبلیه ست.


insert

run:
Jul 6, 2012 8:19:37 AM movi_maneger.NewJFrame jButton1ActionPerformed
SEVERE: null
java.lang.NullPointerException
at movi_maneger.ConnectionSql.insert(ConnectionSql.ja va:28)
at movi_maneger.NewJFrame.jButton1ActionPerformed(New JFrame.java:236)
at movi_maneger.NewJFrame.access$000(NewJFrame.java:2 1)
at movi_maneger.NewJFrame$1.actionPerformed(NewJFrame .java:71)
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.jav a:6263)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3267)
at java.awt.Component.processEvent(Component.java:602 8)
at java.awt.Container.processEvent(Container.java:204 1)
at java.awt.Component.dispatchEventImpl(Component.jav a:4630)
at java.awt.Container.dispatchEventImpl(Container.jav a:2099)
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:4168)
at java.awt.Container.dispatchEventImpl(Container.jav a:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478 )
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:122

spiderman200700
جمعه 16 تیر 1391, 21:31 عصر
فکر نمیکنم ربطی به ورژن netbeans داشته باشه.
مشکل از کدهاتونه احتمالا.

arezo1174
جمعه 16 تیر 1391, 22:57 عصر
آخه کد همون کد قبلیه:افسرده:
ولی قبول دارم حرف شما منطقیه باید اجرا بشه ولی...
آخه همون کدیه که قبلا اجرا شده، اگه مشکلی توی دیتابیسم باشه صفحه ی html که به اون ارتباطی نداره اون چرا اجرا نمیشه بس.

spiderman200700
شنبه 17 تیر 1391, 03:18 صبح
چون به کدهاتون دسترسی ندارم نمیتونم خوب نظر بدم ، ولی احتمالا مشکل از ConnectionSql هست که مقدار null داخلش هست.
حالا نمیدونم که چرا اینجوری میشه.
سعی کنید System.out.println("test..."); رو در جاهای مختلف کد قرار بدید و برنامه رو اجرا کنید ببینید تا کجای برنامه test... در خروجی چاپ میشه. هر جا که در خروجی چیزی چاپ نشد مشکل از اونجاس

arezo1174
شنبه 17 تیر 1391, 15:36 عصر
سلام. ببخشید من یه کلاس نوشتم به صورت زیر که فایل اچ تی ام ال تو مسیر پروژه ایجاد میشه میخام اطلاعات jTextfield داخل html وارد بشه، ولی فایل html رو پر نمیکنه میشه ببینید چی کم داره؟؟؟


public class ExportWithHtml {
public static void export(String d1,String d2,String d3,String d4,String d5){
Writer w = null;
try {
String data1 = "<html><head><title>مشخصات کتاب به صورت html<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
String data2 = "<style>h3,body{text-align:left;border-style:solid;border-width:1px;}</style></head><body>" + "<div style=\"color:#1100CC\">";
String data3 = "<h2>moshakhasate file</h3>" + "<h3>name film =" + data1 + "</h2><br />";
String data4 = "<h3>name kargardan=" + data2 + "</h2>";
String data5 = "<h3>tarekhe sakht =" + data3 + "</h2><br />";
String data6 = "<h3>rade seni =" + data4 + "</h2><br />";
String data7 = "<h3>bazigaran=" + data5 + "</h2><br />";
String data = "</div> </body></html>";
File file = new File("bookmaneger.html");
w = new BufferedWriter(new FileWriter(file));
w.write(data1 + data2 + data3 + data4 + data5 + data6 + data7 + data);
JOptionPane.showMessageDialog(null, "فایل در مسیر پروژه با نام bookmg.html ساخته ش");
System.out.println("file write to bookmaneger.html");
w.close();
} catch (IOException ex) {
Logger.getLogger(ExportWithHtml.class.getName()).l og(Level.SEVERE, null, ex);
} finally {
try {
w.close();
} catch (IOException ex) {
Logger.getLogger(ExportWithHtml.class.getName()).l og(Level.SEVERE, null, ex);
}
}

}

spiderman200700
شنبه 17 تیر 1391, 18:33 عصر
سلام.
فکر میکنم کلا کد ها رو اشتباه نوشتید.
مثلا توی خط زیر چرا data2 رو اینجا استفاده کردید؟
String data4 = "<h3>name kargardan=" + data2 + "</h2>";

در ضمن ، لطفا وقتی کدهاتونو اینجا میذارید از تگ های مربوط به اون کد استفاده کنید که کدهاتون منظم دیده بشه. مثلا برای جاوا از تگ Java اسفاده کنید:لبخندساده:

arezo1174
شنبه 17 تیر 1391, 19:35 عصر
چه جوری میشه توی یه فایل نوشت؟؟؟

spiderman200700
شنبه 17 تیر 1391, 23:01 عصر
میتونید بگید توی کدوم خط اطلاعات TextField رو به کد های html اضافه می کنید؟

arezo1174
یک شنبه 18 تیر 1391, 00:25 صبح
اینجا وارد نکردم ینی کدا رو یکمی تغییر دادم الان میگم:افسرده:

arezo1174
یک شنبه 18 تیر 1391, 00:39 صبح
اینا طبق گفته ی شما همین جوری نوشتم ببینم جواب میده یا نه؟؟؟ ولی نداد

public static void export(String d1){
Writer w = null;
try {
NewJFrame f=new NewJFrame();
String data1 ="<h3>name film ="+f.jTextField1.getText()+"</h3><br />";
data1="<html><body>"+data1+"</body></html>";
File file = new File("bookmaneger.html");
w = new BufferedWriter(new FileWriter(file));
w.write(data1);
JOptionPane.showMessageDialog(null, "فایل در مسیر پروژه با نام bookmg.html ساخته ش");
System.out.println("file write to bookmaneger.html");
w.close();
} catch (IOException ex) {
Logger.getLogger(NewClass.class.getName()).log(Lev el.SEVERE, null, ex);
} finally {
try {
w.close();
} catch (IOException ex) {
Logger.getLogger(NewClass.class.getName()).log(Lev el.SEVERE, null, ex);
}
}

spiderman200700
یک شنبه 18 تیر 1391, 02:45 صبح
کدی که گذاشتید رو تست کردم.
فایل html رو میسازه. محتوایت هم داخل فایل ریخته میشه.بدون هیچ مشکلی
فقط نفهمیدم خط زیر توی کدهاتون چه کاری انجام میده
NewJFrame f=new NewJFrame();

arezo1174
یک شنبه 18 تیر 1391, 07:59 صبح
برای منم فایل ساخته میشه ولی محتوای textfield منتقل نمیشه
چرا بس ماله من نمیشه؟؟؟؟:ناراحت:
خوب همین جوری من به jTextField دسترسی نداشتم مجبور شدم که یه شی بسازم از اون فرمم.

arezo1174
یک شنبه 18 تیر 1391, 08:15 صبح
ببخشید شما توی قسمت باتن هم اینجوری نوشتید؟؟؟


private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
NewClass nc=new NewClass();
nc.export(jTextField1.getText());
}

spiderman200700
یک شنبه 18 تیر 1391, 15:36 عصر
یه برنامه نوشتم واستون.
این کاملا برای من کار میکنه.
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;

public class HTMLCreator extends JFrame {

private JTextArea tx;
private JButton bt;

public HTMLCreator() {
super("HTMLCreator");
setLayout(new FlowLayout());
setSize(600, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);

tx = new JTextArea();
tx.setColumns(53);
tx.setPreferredSize(new Dimension(550, 320));

add(new JScrollPane(tx));
bt = new JButton("create");
bt.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
BufferedWriter bf = null;
try {
bf = new BufferedWriter(new FileWriter("test.html"));
bf.write(createHTMLTag());
JOptionPane.showMessageDialog(null, "HTML file was created");
} catch (IOException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "Error");
} finally {
if (bf != null) {
try {
bf.close();
} catch (IOException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "we have a problem");

}
}
}

}
});
add(bt);
setVisible(true);
}

private String createHTMLTag() {
String StartBody = "<html><body>";
String endBody = "</body></html>";
String container = "<h3><p align='center'>" + tx.getText() + "</p></h3>";
return StartBody + container + endBody;
}

public static void main(String args[]) {
new HTMLCreator();
}
}
موفق باشید

spiderman200700
یک شنبه 18 تیر 1391, 16:18 عصر
خوب همین جوری من به jTextField دسترسی نداشتم مجبور شدم که یه شی بسازم از اون فرمم.

مشکل کدتون هم همینجا بوده دیگه.
وقتی jTextField رو میسازید متنی داخلش نیست . باید jTextField رو توی متد سازنده ی کلاس ایجاد کنید.
به هر حال برنامه ای که واستون گذاشتم. به راحتی کار میکنه.

arezo1174
یک شنبه 18 تیر 1391, 22:58 عصر
من که jtextfield رو ایجاد نکردم توی فرمم هست(درگ کردم از palett) با این شی به اون دسترسی بیدا میکنم ایجاد نمیکنم که:اشتباه:
مرسی از جوابتون یک دنیا ممنون.

spiderman200700
دوشنبه 19 تیر 1391, 00:23 صبح
اونی که توی فرم دارید یه شی جداس اینیم که تازه ایجاد میکنید یه شی جداس.
اینا حافظه های جدایی رو اشغال میکنن و به طبع مقادیر خاص خودشونو دارن.
شی جدیدی که ایجاد کردین هنوز مقدار نداره.

arezo1174
دوشنبه 19 تیر 1391, 09:49 صبح
ببخشید که این همه سوال میبرسم:ناراحت:
توی یکی از تایبیکاتون گفتید که داخل متد سازنده باید ایجاد کنید. منم اومدم یه شی از همون فرم داخل متد سازنده ایجاد کردم ولی داخل متدم به تکس باکسم دوباره دسترسی ندارم. چطوری میشه به همون تکس باکسی که داخل فرمم هست دسترسی داشته باشم؟؟؟؟

spiderman200700
دوشنبه 19 تیر 1391, 11:06 صبح
خواهش میکنم.
شما با ابزار های گرافیکی netbeans برای ساخت فرمتون استفاده می کنید.
netbeans برای ساخت فرم کلاس رو از JFrame مشتق میکنه.
وقتی از کلاسی ارث بری میکنید (همون مشتق) ، دیگه لازم نیست برای دسترسی به TextField اون دوباره شی بسازید. شما بدون ساخت شی هم بهش دسترسی دارید .
کافیه اسم شی مورد نظرتونو بنویسید.

arezo1174
دوشنبه 19 تیر 1391, 12:13 عصر
درسته دسترسی داریم ولی فقط توی همون فرم نه جای دیگه، مثلا توی یه کلاس دیگه که به اون تکس باکس دسترسی ندارم، حتی من اومدم سطح دسترسی تکس باکس که بیش فرضش خصوصیه ،عمومی (public) تعریف کردم ولی بازم نشد:ناراحت:
من توی رویداد کلیک کدم رو نوشته ام اجرا هم شد، ولی دوست دارم بدونم چه طوری میشه این مشکل رو حل کرد؟؟؟ برام جالبه.
اگه کسی میدونه و جواب بده ممنون میشم.
با تشکر فراوان.

spiderman200700
دوشنبه 19 تیر 1391, 14:08 عصر
اگه میخواید از یه کلاس به اشیا کلاس دیگه دسترسی داشته باشید ، یاید موقع ایجاد شی از کلاس دوم ، شی کلاس اول رو به کلاس دوم بدید.

arezo1174
دوشنبه 19 تیر 1391, 21:34 عصر
امکانش هست که یه مثال ساده بزنید؟؟؟ ممنون میشم.

spiderman200700
سه شنبه 20 تیر 1391, 00:34 صبح
اینم یه مثال

با دوبار کلیک روی JTextArea فرم دوم نشون داده میشه.
از توی فرم دوم به JTextArea فرم اول دسترسی دارید. یعنی با کلیک روی JButton کلاس TestForm میتونید مقداری که توی JTextArea کلاس Form وجود داره رو در خروجی چاپ کنید


import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;

public class Form extends JFrame {

JTextArea tx;
TestForm tForm = null;

public Form() {
super("Form");
setLayout(new FlowLayout());
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);

tx = new JTextArea(16, 35);
add(tx);

tx.addMouseListener(new MouseAdapter() {

@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
if (tForm == null) {
tForm = new TestForm(tx);
} else {
tForm.setVisible(true);
}
}
}
});

setVisible(true);
}

public static void main(String args[]) {
new Form();
}
}

class TestForm extends JFrame {

JTextArea txInForm;
JButton bt;

public TestForm(JTextArea tx) {
super("TestForm");
setLayout(new FlowLayout());
setSize(200, 100);
setDefaultCloseOperation(HIDE_ON_CLOSE);
setLocation(200, 200);
this.txInForm = tx;

bt = new JButton("show");
bt.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
System.out.println(txInForm.getText());
}
});
add(bt);

setVisible(true);
}
}

موفق باشید