الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الرسم بالجافا

مغلق
بدأه walid2012 في 17 أبريل 2006 · 3 رد · 612 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

أريد صنع applet تقوم برسم مستطيلات على الشاشة و عند click على أحد المستطيلات يمكن تغيير المكان أو الحجم تماما عند إستعمال أدات مستطيل في dreamweaver or photoshop

الرجاء مساعدتي فلست مختصا في الجافا و هذه applet ما هي إلا بداية لتكملة برنامج يتعلق بدراستي.

و جزاكم الله كل خير .

#2

ممكن اساعدك بكود مشابه انت استفيد منه واكتب الكود اللي بلزمك

الكود يقوم برسم دوائر بأحجام مختلفة كل ما اضغط الزر واحدد الحجم يظهر الحجم المطلوب

جرب اعمله run عنك وشوفه بس انتبه لأسم الpackage لما تعمل copy and paste

package bestbetter;

import java.awt.*;
import java.applet.*;
import java.awt.event.*; // 1.1
public class Applet1 extends Applet
                        implements ActionListener
{
  CheckboxGroup cbg = new CheckboxGroup();

  Checkbox good = new Checkbox("Good", false, cbg);
  Checkbox better = new Checkbox("Better", false, cbg);
  Checkbox best = new Checkbox("Best", true, cbg);

  Button paintIt = new Button("Paint It");

  public void init()
  {
    setLayout(new BorderLayout());
    add("North", makeButtons());
    add("South", paintIt);
    paintIt.addActionListener(this);
  }

  public void actionPerformed(ActionEvent ae)
  {
    Graphics g = getGraphics();

    int w = getSize().width;
    int h = getSize().height;
    int ratio = 1;

    Checkbox current = cbg.getSelectedCheckbox();
    if      (current == good)   ratio = 5;
    else if (current == better) ratio = 3;
    else if (current == best)   ratio = 2;

    g.clearRect(0, 0, w, h);
    g.fillOval(w/2 - ((w/ratio)/2),
               h/2 - ((h/ratio)/2),
               w/ratio, h/ratio);

  g.dispose();
  }

  public Panel makeButtons()
  {
    Panel p = new Panel();
    p.setLayout(new GridLayout(1, 0, 5, 5));
    p.add(good);
    p.add(better);
    p.add(best);

    Panel p2 = new Panel();
    p2.add(p);
    return p2;
  }
}

سلام

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#3

ممكن اساعدك بكود مشابه انت استفيد منه واكتب الكود اللي بلزمك

الكود يقوم برسم دوائر بأحجام مختلفة كل ما اضغط الزر واحدد الحجم يظهر الحجم المطلوب

جرب اعمله run عنك وشوفه بس انتبه لأسم الpackage لما تعمل copy and paste

package bestbetter;

import java.awt.*;
import java.applet.*;
import java.awt.event.*; // 1.1
public class Applet1 extends Applet
                        implements ActionListener
{
  CheckboxGroup cbg = new CheckboxGroup();

  Checkbox good = new Checkbox("Good", false, cbg);
  Checkbox better = new Checkbox("Better", false, cbg);
  Checkbox best = new Checkbox("Best", true, cbg);

  Button paintIt = new Button("Paint It");

  public void init()
  {
    setLayout(new BorderLayout());
    add("North", makeButtons());
    add("South", paintIt);
    paintIt.addActionListener(this);
  }

  public void actionPerformed(ActionEvent ae)
  {
    Graphics g = getGraphics();

    int w = getSize().width;
    int h = getSize().height;
    int ratio = 1;

    Checkbox current = cbg.getSelectedCheckbox();
    if      (current == good)   ratio = 5;
    else if (current == better) ratio = 3;
    else if (current == best)   ratio = 2;

    g.clearRect(0, 0, w, h);
    g.fillOval(w/2 - ((w/ratio)/2),
               h/2 - ((h/ratio)/2),
               w/ratio, h/ratio);

  g.dispose();
  }

  public Panel makeButtons()
  {
    Panel p = new Panel();
    p.setLayout(new GridLayout(1, 0, 5, 5));
    p.add(good);
    p.add(better);
    p.add(best);

    Panel p2 = new Panel();
    p2.add(p);
    return p2;
  }
}

سلام

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#4

شكرا لك أخي و جزاك الله كل خير

تعاملي مع العرب خلاني لازم أعود نفسي إنهم لا يساعدو بعضهم البعض....هذا اللي شفتو

إليكم اللي وصلته للحضة هذه و للله الحمد و الله أكبر:

import editeur.TraceRectangle;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

import java.awt.BasicStroke;

import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Label;

import java.awt.Rectangle;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JApplet;

//Use double buffering to remove rectangle flickers and make it repaint faster.

public class ShapeMover extends JApplet implements ActionListener,ItemListener {

public ShapeMover() {

try {

jbInit();

} catch (Exception ex) {

ex.printStackTrace();

}

}

static protected Label label = new Label(

"Drag rectangle around within the area");

JPanel p1 = new JPanel((new GridLayout(8, 1, 30, 5)));

private JButton b1 = new JButton("Rectangle");

private JButton select=new JButton("Selectionner");

private Choice cFond;

private Choice cText;

MyCanvas mycanvas=new MyCanvas();

public void init() {

//creation des choix de couleur cFond

cFond = new Choice();

cFond.add("Bleu");

cFond.add("Noir");

cFond.add("Rouge");

cFond.add("Vert");

p1.add(new Label("couleur de fond"));

p1.add(cFond);

cText = new Choice();

cText.add("Jaune");

cText.add("Rose");

cText.add("Blanc");

cText.add("Bleu");

p1.add(new Label("couleur de Text"));

p1.add(cText);

getContentPane().setLayout(new BorderLayout());

//getContentPane().add(new MyCanvas());

getContentPane().add( mycanvas);

p1.add(b1);

p1.add(select);

getContentPane().add("West", p1);

//ecouteurs

cFond.addItemListener(this);

cText.addItemListener(this);

b1.addActionListener(this);

select.addActionListener(this);

getContentPane().add("South", label);

}

public static void main(String s[]) {

Frame f = new Frame("ShapeMover");

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

Applet applet = new ShapeMover();

f.add("Center", applet);

applet.init();

f.pack();

f.setSize(new Dimension(550, 250));

f.show();

}

//evenement des bouton des outils

public void actionPerformed(ActionEvent e) {

JButton b = (JButton) e.getSource();

if (b == b1) {

mycanvas.boutonchoisi = "Rectangle";

//System.out.println(mycanvas.couleurText);

}

if (b == select) {

mycanvas.boutonchoisi="select";

//System.out.println(mycanvas.boutonchoisi);

}

}

private void jbInit() throws Exception {

}

public void itemStateChanged(ItemEvent e) {

Choice ch = (Choice) e.getSource();

if (ch == cFond) {

if (ch.getSelectedItem() == "Bleu"){

mycanvas.couleurFond = Color.blue;

mycanvas.repaint();

}

if (ch.getSelectedItem().equals("Noir")){

mycanvas.couleurFond = Color.black;

mycanvas.repaint();

}

if (ch.getSelectedItem().equals("Rouge")){

mycanvas.couleurFond = Color.red;

mycanvas.repaint();

}

if (ch.getSelectedItem().equals("Vert")){

mycanvas.couleurFond = Color.green;

mycanvas.repaint();

}

} else

/*if(ch==cText*/ {

if (ch.getSelectedItem().equals("Jaune"))

mycanvas.couleurText = Color.yellow;

if (ch.getSelectedItem().equals("Rose"))

mycanvas.couleurText = Color.magenta;

if (ch.getSelectedItem().equals("Blanc"))

mycanvas.couleurText = Color.white;

if (ch.getSelectedItem().equals("Bleu"))

mycanvas.couleurText = Color.cyan;

}

}

class MyCanvas extends Canvas implements MouseListener, MouseMotionListener {

String boutonchoisi = "Ligne";

Color couleurFond = Color.blue;

Color couleurText = Color.yellow;

TraceRectangle tr1 = new TraceRectangle();

int x;

int y;

int lastX;

int lastY;

Rectangle rect = new Rectangle(0, 0, 100, 50);

Graphics2D g2;

int preX, preY;

boolean isFirstTime = true;

Rectangle area;

boolean pressOut = false;

public MyCanvas() {

setBackground(couleurFond);

addMouseMotionListener(this);

addMouseListener(this);

}

public void mousePressed(MouseEvent e) {

Graphics g=mycanvas.getGraphics();

Graphics2D g2=(Graphics2D)g;

preX = rect.x - e.getX();

preY = rect.y - e.getY();

if (rect.contains(e.getX(), e.getY()))

updateLocation(e);

else {

ShapeMover.label.setText("Drag it.");

pressOut = true;

}

//g ajouté ca

if(boutonchoisi=="Rectangle" ){

lastX=e.getX();

lastY=e.getY();

x=lastX;

y=lastY;

}

if(boutonchoisi=="select"){

tr1.rect=new Rectangle(tr1.point.x,tr1.point.y,tr1.w,tr1.h);

//ok la selection

tr1.Selected(e,g2,couleurText);

tr1.delSelect(e,couleurFond,g2,couleurText);

}

}

public void mouseDragged(MouseEvent e) {

if (!pressOut)

updateLocation(e);

else

ShapeMover.label.setText("Drag it.");

//tracage du rectangle

update(e);

}

public void mouseReleased(MouseEvent e) {

if (rect.contains(e.getX(), e.getY()))

updateLocation(e);

else {

ShapeMover.label.setText("Drag it.");

pressOut = false;

}

}

public void mouseMoved(MouseEvent e) {

}

public void mouseClicked(MouseEvent e) {

}

public void mouseExited(MouseEvent e) {

}

public void mouseEntered(MouseEvent e) {

}

public void updateLocation(MouseEvent e) {

rect.setLocation(preX + e.getX(), preY + e.getY());

if (checkRect()) {

ShapeMover.label.setText(rect.getX() + ", " + rect.getY());

} else {

ShapeMover.label.setText("drag inside the area.");

}

repaint();

}

public void paint(Graphics g) {

update(g);

}

public void update(MouseEvent e){

//tracage du rectangle

Graphics g=mycanvas.getGraphics();

Graphics2D g2 = (Graphics2D) g;

if (boutonchoisi == "Rectangle") {

//tracage du rectangle

g.setColor(couleurFond);

g.drawRect(lastX, lastY, x - lastX, y - lastY);

g.setColor(couleurText);

g.drawRect(lastX, lastY, e.getX() - lastX, e.getY() - lastY);

x = e.getX();

y = e.getY();

//concervation de trace

tr1.point.x=mycanvas.lastX;

tr1.point.y=mycanvas.lastY;

tr1.rect.setSize(e.getX() - lastX,e.getY() - lastY);

tr1.w=e.getX() - lastX;

tr1.h=e.getY() - lastY;

}

}

public void update(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

Dimension dim = getSize();

int w = (int) dim.getWidth();

int h = (int) dim.getHeight();

g2.setStroke(new BasicStroke(8.0f));

if (isFirstTime) {

area = new Rectangle(dim);

rect.setLocation(w / 2 - 50, h / 2 - 25);

isFirstTime = false;

}

// Clears the rectangle that was previously drawn.

g2.setPaint(couleurFond);

g2.fillRect(0, 0, w, h);

g2.setColor(couleurText);

g2.draw(rect);

g2.setColor(couleurText);

g2.fill(rect);

}

boolean checkRect() {

if (area == null) {

return false;

}

if (area.contains(rect.x, rect.y, 100, 50)) {

return true;

}

int new_x = rect.x;

int new_y = rect.y;

if ((rect.x + 100) > area.getWidth()) {

new_x = (int) area.getWidth() - 99;

}

if (rect.x < 0) {

new_x = -1;

}

if ((rect.y + 50) > area.getHeight()) {

new_y = (int) area.getHeight() - 49;

}

if (rect.y < 0) {

new_y = -1;

}

rect.setLocation(new_x, new_y);

return false;

}

}

}

هذا الموضوع مغلق.

مواضيع مشابهة