java画图板的文件保存与读取代码(java简单画图板完整代码)
admin 发布:2022-12-19 20:05 156
今天给各位分享java画图板的文件保存与读取代码的知识,其中也会对java简单画图板完整代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java写的画图板保存图片是怎么实现的
- 2、java 的文件保存和读取问题?
- 3、GUI画图板(绘图板)设计,用Java编写程序代码!!谢谢!!
- 4、java中画图其数据怎么读出和保存比如画几个圆要代码啊
- 5、java中的文件存取与读取
java写的画图板保存图片是怎么实现的
首先是得到图片的保存路径,
然后截取图片的路径。。
然后再用文件的输入输出流。。
把文件读入数级组中。。
再它其写到指定的文件夹中。。
这样就实现了文件的保存……
祝你早日成功!
java 的文件保存和读取问题?
可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到每行的内容,之后通过OutputStreamWriter进行文件写入。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定义一个流
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str );//将要写入文件的内容,写入到新文件
};
pw.close();//关闭流
bre .close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
GUI画图板(绘图板)设计,用Java编写程序代码!!谢谢!!
只有矩形有圆形能移动,其它实现起来麻烦点,办法有的只是代码太多。
画圆弧改成了画曲线,圆弧稍麻烦,当然方法是很简单的,你可以自己思考一下。
双击13个颜色中的任意一个都会弹出颜色选择器。
有保存与打开功能。扩展名请用 .jdr
基本满足条件,细节可能不是很好,另,代码比较乱,怕不好看懂咯,呼呼。
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
public class JDraw {
public static void main(String[] args) {
JFrame f=new JFrame();
f.setDefaultCloseOperation(3);
f.setSize(880,600);
f.setLocationRelativeTo(null);
f.getContentPane().add(M.c);
f.getContentPane().add(M.m,"South");
f.setVisible(true);
}
}
class CVS extends Component implements ComponentListener,MouseListener,MouseMotionListener{
public void componentHidden(ComponentEvent e) {}
public void componentMoved(ComponentEvent e) {}
public void componentResized(ComponentEvent e) {resized();}
public void componentShown(ComponentEvent e) {}
private void resized() {
int w=this.getWidth();
int h=this.getHeight();
tbuff=new BufferedImage(w,h,3);
makeBuff(w,h);
}
private void makeBuff(int w,int h) {
Graphics g = tbuff.getGraphics();
g.drawImage(buff,0,0,null);
g.dispose();
buff=new BufferedImage(w,h,3);
g=buff.getGraphics();
g.drawImage(tbuff,0,0,null);
g.dispose();
}
BufferedImage buff,tbuff;
CVS(){
this.addComponentListener(this);
this.addMouseListener(this);
this.addMouseMotionListener(this);
buff=new BufferedImage(1,1,3);
}
public void paint(Graphics gr){
Graphics2D g = buff.createGraphics();
g.setBackground(new Color(0xff000000,true));
g.clearRect(0,0,getWidth(),getHeight());
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
M.sa.drawAll(g);
if(M.ts!=null)
M.ts.draw(g);
g.dispose();
gr.drawImage(buff,0,0,this);
gr.dispose();
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
M.mp(e.getPoint());
}
public void mouseReleased(MouseEvent e) {
M.mr(e.getPoint());
}
public void mouseDragged(MouseEvent e) {
M.md(e.getPoint());
}
public void mouseMoved(MouseEvent e) {}
}
class Menu extends JComponent implements MouseListener,ActionListener{
JComboBox sbox,method;
CLabel[] cl;
JCheckBox fillC,drawB;
JRadioButton fc,bc;
ButtonGroup bg;
JButton clear,up,down,save,load;
Menu(){
this.setLayout(new FlowLayout());
method=new JComboBox(new Object[]{"draw","move","erase",});
add(method);
sbox=new JComboBox(new Object[]{"Pt","Ln","Rect","Cir","Arc",});
add(sbox);
cl=new CLabel[13];
for(int i=0; icl.length; i++){
cl[i]=new CLabel();
cl[i].addMouseListener(this);
add(cl[i]);
}
fc=new JRadioButton("fc",true);
bc=new JRadioButton("bc");
bg=new ButtonGroup();
bg.add(fc);bg.add(bc);
add(fc);add(bc);
fc.setOpaque(true);
bc.setOpaque(true);
fc.setBackground(Color.white);
bc.setBackground(Color.blue);
fillC=new JCheckBox("Fill",true);
drawB=new JCheckBox("Draw",true);
fillC.addActionListener(this);
drawB.addActionListener(this);
add(fillC);add(drawB);
clear=new JButton("clear");
clear.addActionListener(this);
add(clear);
up=new JButton("zUp");
up.addActionListener(this);
add(up);
down=new JButton("zDown");
down.addActionListener(this);
add(down);
save=new JButton("Save");
save.addActionListener(this);
add(save);
load=new JButton("Load");
load.addActionListener(this);
add(load);
}
public void mouseClicked(MouseEvent e) {
JLabel l=(JLabel)e.getSource();
if(e.getClickCount()==2){
Color sc=JColorChooser.showDialog(null, "Color chooser", l.getBackground());
l.setBackground(sc);
mousePressed(e);
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
Color c=((JLabel)e.getSource()).getBackground();
if(fc.isSelected())
fc.setBackground(c);
else if(bc.isSelected())
bc.setBackground(c);
M.cp();
}
public void mouseReleased(MouseEvent e) {}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==clear)M.clear();
else if(e.getSource()==up)M.up();
else if(e.getSource()==down)M.down();
else if(e.getSource()==save)M.save();
else if(e.getSource()==load)M.load();
else if(e.getSource()==fillC||e.getSource()==drawB)M.cp();
}
}
class CLabel extends JLabel{
static Color[] cs={Color.red,Color.orange,Color.yellow,Color.green,Color.cyan,
Color.blue,Color.magenta,Color.magenta.brighter(),
Color.white,Color.black,Color.gray,Color.LIGHT_GRAY,Color.DARK_GRAY,};
static int i;
CLabel(){
this.setOpaque(true);
this.setBackground(cs[i++]);
this.setBorder(BorderFactory.createLineBorder(Color.black));
this.setPreferredSize(new Dimension(10,20));
}
}
class M{
static JFileChooser jfc=new JFileChooser();
static Menu m=new Menu();
static CVS c=new CVS();
static SA sa=new SA();
static S ts=null,selected=null;
static Color fc,bc;
static void clear(){
sa.ss.clear();
c.repaint();
}
public static void cp() {
System.out.println(selected);
if(selected!=null){
selected.fillColor=m.fc.getBackground();
selected.borderColor=m.bc.getBackground();
selected.fc=m.fillC.isSelected();
selected.db=m.drawB.isSelected();
c.repaint();
}
}
public static void up() {
if(selected!=null){
sa.upZ(selected);
c.repaint();
}
}
public static void down(){
if(selected!=null){
sa.downZ(selected);
c.repaint();
}
}
static{
jfc.setFileFilter(new FileNameExtensionFilter("JDraw file (*.jdraw,*.jdr)","jdr","jdraw"));
}
static void save(){
int x=jfc.showSaveDialog(c);
if(x==JFileChooser.APPROVE_OPTION){
File f = jfc.getSelectedFile();
try{
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(f));
oos.writeObject(sa);
oos.flush();
oos.close();
}catch(Exception e){}
}
}
static void load(){
int x=jfc.showOpenDialog(c);
if(x==JFileChooser.APPROVE_OPTION){
File f = jfc.getSelectedFile();
try{
ObjectInputStream oos=new ObjectInputStream(new FileInputStream(f));
Object r=oos.readObject();
if(r!=null){
sa=(SA)r;
c.repaint();
}
oos.close();
}catch(Exception e){e.printStackTrace();}
}
}
static int mx,my,tx,ty,ox,oy;
static int pc=0,pmax;
static int sm;
static boolean ne=true;
static int mid;
static void mp(Point p){
mid=m.method.getSelectedIndex();
if(mid==0){
if(ne){
mx=p.x;my=p.y;
pc=0;
sm=m.sbox.getSelectedIndex();
pmax=sm==4?2:1;
ne=false;
}
++pc;
}
else if(mid==1){
checkSel(p);
mx=p.x;my=p.y;
}
else if(mid==2){
checkSel(p);
if(selected!=null){
sa.ss.remove(selected);
c.repaint();
}
}
}
private static void checkSel(Point p) {
selected=null;
for(int i=sa.ss.size();i0; i--)
if(sa.ss.get(i-1).shape.contains(p)){
selected=sa.ss.get(i-1);break;
}
sa.select(selected);
c.repaint();
}
static void mt(){
Shape s=null;
int cx,cy,cw,ch;
switch(sm){
case 0:
case 2:
cx=Math.min(mx,tx);
cy=Math.min(my,ty);
cw=Math.abs(mx-tx);
ch=Math.abs(my-ty);
if(sm==0)
s=new Ellipse2D.Double(cx,cy,cw,ch);
else
s=new Rectangle(cx,cy,cw,ch);
break;
case 1:
s=new Line2D.Float(mx,my,tx,ty);
break;
case 3:
cw=Math.abs(mx-tx);
ch=Math.abs(my-ty);
int cd=(int)Math.sqrt(Math.pow(mx-tx,2)+Math.pow(my-ty,2))*2;
cx=mx-cd/2;
cy=my-cd/2;
s=new Ellipse2D.Double(cx,cy,cd,cd);
break;
case 4:
Path2D p=new Path2D.Double();
p.moveTo(mx,my);
if(pc==1){
p.lineTo(tx, ty);
}
else{
p.quadTo(ox,oy,tx,ty);
}
s=p;
break;
}
ts=new S(s,m.fc.getBackground(),m.bc.getBackground(),m.fillC.isSelected(),m.drawB.isSelected(),null);
c.repaint();
}
static void md(Point p){
if(mid==0){
if(!sa.ss.isEmpty()){
sa.ss.get(sa.ss.size()-1).sel=false;
}
if(pc1){
ox=p.x;oy=p.y;
}
else{
tx=p.x;ty=p.y;
}
mt();
}
else if(mid==1){
if(selected!=null){
moveTo(selected,p);
c.repaint();
}
}
else if(mid==2){
checkSel(p);
if(selected!=null){
sa.ss.remove(selected);
c.repaint();
}
}
}
static void moveTo(S s, Point p) {
if(s.shape instanceof Rectangle){
Rectangle r=(Rectangle)s.shape;
r.setLocation(r.x+p.x-mx,r.y+p.y-my);
mx=p.x;my=p.y;
}
else if(s.shape instanceof Ellipse2D){
Ellipse2D e=(Ellipse2D)s.shape;
e.setFrame(e.getX()+p.x-mx,e.getY()+p.y-my,e.getWidth(),e.getHeight());
mx=p.x;my=p.y;
}
}
static void mr(Point p) {
if(pc==pmax){
pc=0;
ne=true;
sa.add(ts);
selected=ts;
ts=null;
}
}
}
class S implements Serializable{
boolean fc,db,sel=true;
Shape shape;
Color fillColor,borderColor;
Stroke stroke;
static Stroke bstroke=new MyBasicStroke();
static Stroke selectStroke=new BasicStroke(1,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER,1,new float[]{5,2},1);
S(Shape s,Color c,Color b,boolean f,boolean d,Stroke k){
this.shape=s;this.fillColor=c;this.borderColor=b;this.fc=f;this.db=d;this.stroke=k==null?bstroke:k;
}
void draw(Graphics2D g){
if(fc){
g.setColor(fillColor);
g.fill(shape);
}
if(db){
g.setColor(borderColor);
g.setStroke(stroke);
g.draw(shape);
}
if(sel){
g.setColor(Color.green);
g.setStroke(selectStroke);
g.draw(shape.getBounds());
}
}
}
class MyBasicStroke extends BasicStroke implements Serializable{}
class SA implements Serializable{
ArrayListS ss=new ArrayListS();
void add(S s){
if(s!=null){
for(S sx:ss)
sx.sel=false;
ss.add(s);
}
}
S remove(int i){
return ss.remove(i);
}
void remove(S s){
ss.remove(s);
}
void upZ(S s){
indexZ(s,1);
}
void downZ(S s){
indexZ(s,-1);
}
void indexZ(S s, int i) {
int si=ss.indexOf(s);
if(si+i0||si+iss.size()-1)return;
swap(s,ss.get(si+i));
}
void swap(S a,S b){
int ai=ss.indexOf(a);
int bi=ss.indexOf(b);
ss.set(ai,b);
ss.set(bi,a);
}
void select(S s){
for(S x:ss)
x.sel=false;
if(s!=null)
s.sel=true;
}
void drawAll(Graphics2D g){
for(S s:ss)
s.draw(g);
}
}
java中画图其数据怎么读出和保存比如画几个圆要代码啊
下面是我写的一个小东西,绘制了若干图形:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.geom.*;
import java.util.ArrayList;
import javax.swing.border.*;
public class DrawingLeftPanel extends JFrame{
private int DX=100;
private int DY=200;
Point point;
DrawingLeftPanel(){
setBackground(Color.GRAY);
setSize(300,700);
setLayout(new GridLayout(1,1));
JPanel panel=new JPanel0();
JScrollPane scrollpane=new JScrollPane(panel);
scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
this.getContentPane().add(scrollpane);
setVisible(true);
}
public static void main(String args[]){
new DrawingLeftPanel();
}
class JPanel0 extends JPanel {
public void paintComponent(Graphics g)
{ int w=getSize().width;
int h=getSize().height;
Shape shape1,shape2,shape3,shape4,shape5,shape6,shape7,shape8,shape9;
int[] xpoints=new int[4];
int[] ypoints=new int[4];
xpoints[0]=DX;
ypoints[0]=DY;
xpoints[1]=DX-50;
ypoints[1]=DY+25;
xpoints[2]=DX;
ypoints[2]=DY+50;
xpoints[3]=DX+50;
ypoints[3]=DY+25;
//画图父类的构造函数
//System.out.println("adfafd");
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
//g2.setColor(Color.BLACK);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setStroke(new BasicStroke(1.0f));
g2.setColor(Color.LIGHT_GRAY);
Shape e=new Ellipse2D.Double(75,50,50,50);
g2.fill(e);
g2.setColor(Color.BLACK);
g2.draw(e);//画出圆形 概念
e=new Rectangle2D.Double(50,125,100,50);
g2.setColor(Color.LIGHT_GRAY);
g2.fill(e);
g2.setColor(Color.BLACK);
g2.draw(e);//画出矩形 原理规则
e=new Polygon(xpoints,ypoints,4);
g2.setColor(Color.LIGHT_GRAY);
g2.fill(e);
g2.setColor(Color.BLACK);
g2.draw(e);//画出四边形 态度价值观念
shape1=new Ellipse2D.Double(150,275,50,50);
shape2=new Rectangle2D.Double(75,275,100,50);
shape3=new Ellipse2D.Double(50, 275, 50, 50);
Area area1=new Area(shape1);
Area area2=new Area(shape2);
Area area3=new Area(shape3);
area2.subtract(area1);
area3.add(area2);
g2.setColor(Color.LIGHT_GRAY);
g2.fill(area3);
g2.setColor(Color.BLACK);
g2.draw(area3);//画出事实范例
shape4=new Ellipse2D.Double(150,350,50,50);
shape5=new Rectangle2D.Double(75,350,100,50);
shape6=new Ellipse2D.Double(50, 350, 50, 50);
Area area4=new Area(shape4);
Area area5=new Area(shape5);
Area area6=new Area(shape6);
area5.add(area4);
area5.add(area6);
g2.setColor(Color.LIGHT_GRAY);
g2.fill(area5);
g2.setColor(Color.BLACK);
g2.draw(area5);//画出过程
shape7=new Ellipse2D.Double(150,425,50,50);
shape8=new Rectangle2D.Double(75,425,100,50);
shape9=new Ellipse2D.Double(50, 425, 50, 50);
Area area7=new Area(shape7);
Area area8=new Area(shape8);
Area area9=new Area(shape9);
area8.subtract(area7);
area8.add(area9);
g2.setColor(Color.LIGHT_GRAY);
g2.fill(area8);
area8.add(area7);
g2.setColor(Color.BLACK);
g2.draw(area7);
g2.draw(area8);//画出事实范例
shape7=new Line2D.Float(75,525,175,525);
g2.draw(shape7);
GeneralPath p = new GeneralPath(GeneralPath.WIND_EVEN_ODD);
p.moveTo(75, 600);
// adds a cubic curve to the path
p.curveTo(100, 650, 150, 550,200,600);
// p.moveTo(w*.2f, h*.6f);
// adds a quad curve to the path
// p.quadTo(w*.5f, h*1.0f, w*.8f, h*.6f);
g2.setColor(Color.lightGray);
g2.fill(p);
g2.setColor(Color.black);
g2.draw(p);
}
}
}
java中的文件存取与读取
读写是两个不同的分支,通常都是分开单独使用的。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
java画图板的文件保存与读取代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java简单画图板完整代码、java画图板的文件保存与读取代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 04-27c开发实战源代码(c开源项目代码)[20240427更新]
- 04-27java源程序代码连连看(java程序设计连连看实验报告)[20240427更新]
- 04-27ppt插入flash代码(ppt加入flash)[20240427更新]
- 04-27教育培训代码php(培训学校行业代码)[20240427更新]
- 04-27jsp考试管理系统源代码的简单介绍[20240427更新]
- 04-27网页制作代码模板下载(网页制作代码模板下载安装)[20240427更新]
- 04-27htmlcss静态代码(html+css静态网页)[20240427更新]
- 04-272048java源代码的简单介绍[20240427更新]
- 04-27学生选课系统asp设计源代码的简单介绍[20240427更新]
- 04-27滑动时间轴代码(时间的滚轴)[20240427更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接