Thread: Deviding the center of jfraem into two parts
hi guys
have java programm allow user draw doodle , save it. program also, allow user have templates such camel, bear in order him/her find out how draw them.
program works fine problem when user press button show templates, templates displayed in external window not in jframe window. have tried divide center of jframe 2 parts: 1 drawing , 1 showing templates.
have been trying way many times , have been searching around not find how can it.
here code of painting , showing templates. very helpfull if can help. have started hate java because of code
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.event.actionlistener;
importjava.awt.image.bufferedimage;
importjava.io.bufferedreader;
importjava.io.file;
importjava.io.fileinputstream;
importjava.io.fileoutputstream;
importjava.io.ioexception;
importjava.io.inputstreamreader;
importjava.io.objectinputstream;
importjava.io.objectoutputstream;
importjava.util.arraylist;
importjava.util.list;
importjava.util.vector;
importjava.awt.point;
importjavax.imageio.imageio;
importjavax.swing.event.*;
importjavax.swing.jbutton;
importjavax.swing.jcombobox;
importjavax.swing.jframe;
importjavax.swing.jlabel;
importjavax.swing.joptionpane;
importjavax.swing.jpanel;
importjavax.swing.jtextarea;
importjavax.swing.jtextfield;
publicclass paintprush extends jframe implements mouselistener, actionlistener, mousemotionlistener{
intxvalue = -10, yvalue = -10;
painter p ;
privatepanel top, drawingarea, bottom;
privatejtextfield text1, text2, text3, text4, text5;
privatejlabel mylabel;
privatejcombobox templates;
privatejbutton open, mspaint, show, draw, clear, save, exit;
privateusersaccount ua;
bufferedimage image;
process process;
file inputfile;
list<point> displaylist = new arraylist<point>();
string pathname = "data.dat";
publicpaintprush (usersaccount a){
bufferedreader bf=new bufferedreader(new inputstreamreader(system.in));
addmouselistener(this);
addmousemotionlistener(this);
setdefaultcloseoperation (exit_on_close);
settitle ("drwoing tool");
setsize (1000,600);
ua = a;
layoutcomponents();
}
privatevoid layoutcomponents(){
setlayout(new borderlayout());
top = new panel();
open = new jbutton("open doodle");
top.add(open);
open.addactionlistener(this);
mspaint = new jbutton("open mspaint");
top.add(mspaint);
mspaint.addactionlistener(this);
draw = new jbutton("creat doodle");
top.add(draw);
draw.addactionlistener(this);
//line = new jbutton("line");
//top.add(line);
//line.addactionlistener(this);
clear = new jbutton("clear");
top.add(clear);
clear.addactionlistener(this);
save = new jbutton("save doodle");
top.add(save);
save.addactionlistener(this);
exit = new jbutton("exit");
top.add(exit);
exit.addactionlistener(this);
add(top,borderlayout.north);
bottom = new panel();
mylabel = new jlabel("select template");
bottom.add(mylabel);
templates = new jcombobox ();
templates.additem("armadillo");
templates.additem("bear");
templates.additem("camel");
templates.additem("cartons");
templates.additem("dragonhead");
templates.additem("fish");
templates.additem("hedgehog");
templates.additem("historic ornament rosettes");
templates.additem("leaf forms");
templates.additem("parrot");
templates.additem("rose");
templates.additem("sheep");
templates.additem("stick");
templates.additem("swan");
templates.addactionlistener(this);
bottom.add(templates);
show = new jbutton("show template");
bottom.add(show);
show.addactionlistener(this);
add(bottom,borderlayout.south);
//drawingarea = new jpanel();
//drawingarea.setpreferredsize(new dimension(400, 0));
//drawingarea.setbackground(color.white);
//add(drawingarea,borderlayout.center);
setvisible(true);
}
publicvoid actionperformed (actionevent e){
string template = templates.getselecteditem().tostring();
if (e.getsource()== open)
{
string name = joptionpane.showinputdialog(null, "enter name");
try {
fileinputstream fis = new fileinputstream(name+".dat");
objectinputstream ois = new objectinputstream(fis);
displaylist = (vector) (ois.readobject());
ois.close();
fis.close();
repaint();
} catch (exception ex) {
system.out.println("trouble reading display list vector");
}
}
elseif (e.getsource()== mspaint)
{
try {
runtime.getruntime().exec("c:\\windows\\system32\\mspaint.exe");
} catch (ioexception e1) {
// todo auto-generated catch block
e1.printstacktrace();
}
}
elseif (e.getsource()== show)
{
// file input = new file(template+".jpg");
// try {
// image = imageio.read(input);
//} catch (ioexception e1) {
// todo auto-generated catch block
//e1.printstacktrace();
// }
try {
process = new processbuilder("mspaint",template+".jpg").start();
} catch (ioexception e1) {
//todo auto-generated catch block
e1.printstacktrace();
}
}
//else if (e.getsource()== draw)
//{
// addmousemotionlistener
//(
// new mousemotionadapter()
// {//
// }
//);
// setsize( 500,500 );
// setvisible( true );
//}
elseif (e.getsource()== save)
{
try {
fileoutputstream fos = new fileoutputstream(ua.name+".dat");
objectoutputstream oos = new objectoutputstream(fos);
oos.writeobject(displaylist);
oos.flush();
oos.close();
fos.close();
} catch (exception ex) {
system.out.println("trouble writing display list vector");
}
}
elseif (e.getsource()== clear)
{
displaylist = new vector();
repaint();
}
elseif (e.getsource()== exit)
{
joptionpane.showmessagedialog(null, "good bay","result summary", joptionpane.information_message);
system.exit(0);
}
}
publicvoid paint ( graphics g )
{
g.setcolor(color.white);
//system.out.print(getsize().height);
// g.fillrect(0, 0, 600, 600);
// g.setcolor(color.gray);
// g.fillrect(getsize().width-400,getsize().height-550, 600, 600);
g.fillrect(0, 0, getsize().width, getsize().height);
g.setcolor(color.red);
int = 0;
while (i < displaylist.size()) {
point p0 = (point) (displaylist.get(i++));
g.filloval(p0.x, p0.y, 10,10);
//g.drawimage( image, 50, 50, null);
}
//g.drawoval( xvalue, yvalue, 10, 10 );
// g.drawline(prevx, prevy, x, y);
}@overridepublicvoid mouseclicked(mouseevent event) {
// todo auto-generated method stub
}@overridepublicvoid mouseentered(mouseevent event) {
// todo auto-generated method stub
}@overridepublicvoid mouseexited(mouseevent event) {
// todo auto-generated method stub
}@overridepublicvoid mousepressed(mouseevent event) {
// todo auto-generated method stub
point p =new point(event.getx(), event.gety());
displaylist.add(p);
}
@overridepublicvoid mousereleased(mouseevent event) {
// todo auto-generated method stub
point p =new point(event.getx(), event.gety());
displaylist.add(p);
repaint();
}
publicvoid mousedragged( mouseevent event )
{
point p = new point(event.getx(), event.gety());
displaylist.add(p);
repaint();
//xvalue = event.getx();
// yvalue = event.gety();// repaint();
}@overridepublicvoid mousemoved(mouseevent e) {
// todo auto-generated method stub
}
}
Forum The Ubuntu Forum Community Ubuntu Specialised Support Development & Programming Programming Talk Deviding the center of jfraem into two parts
Ubuntu
Comments
Post a Comment