Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1


Użytkownik



Witam! Mam taki applet dzięki któremu można rysować, kod java wygląda tak:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
public class rysunek extends JApplet implements MouseMotionListener, MouseListener
{
int x=0; int y=0; int a=0;
public void init()
{
addMouseMotionListener(this); addMouseListener(this);
}
public void mouseMoved (MouseEvent e) {}
public void mouseDragged(MouseEvent e) {
if (a==1)
{
x=e.getX();
y=e.getY();
getGraphics().setColor(Color.BLACK); getGraphics().fillOval(x,y,5,5);
}
}
public void mouseClicked (MouseEvent e)
{
int button = e.getButton();
if (button == MouseEvent.BUTTON3) {repaint();}
}
public void mouseEntered (MouseEvent e){}
public void mouseExited (MouseEvent e){}
public void mousePressed (MouseEvent e)
{
int button = e.getButton();
if (button == MouseEvent.BUTTON3) {a=0; repaint();}
if (button == MouseEvent.BUTTON1) {a=1;}
}
public void mouseReleased(MouseEvent e){}
public void paint(Graphics g)
{
g.setColor(Color.red); g.fillRect(0,0,420,240);
}
}( Szczerze powiedziawszy nie znam dobrze javy także był bym wdzięczny gdyby ktoś mi mógł powiedzieć
co do czego służy ( powierzchownie wiem ).
I jeszcze jedno pytanie - jak uzupełnić ten kod aby namalowany rysunek można było zapisać do pliku w formacie jpg???
Offline

Członek DUG


zapisanie do pliku jako JPEG znajdziesz tu http://www.jguru.com/faq/view.jsp?EID=703938 powinno dzialac, nie sprawdzalem
Ktorej czesci kodu nie rozumiesz?
Offline


Użytkownik



No tak tylko nie bardzo wiem jak te kody połaczyć?? Bo jak kompiluje z http://www.jguru.com/faq/view.jsp?EID=703938 to sypie mi błędy ale to ze względu na tą część:
...
Frame f = ...; // create your GUI
Także był bym wdzięczny za pomoc.
Offline

Członek DUG


import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.swing.JApplet;
import sun.awt.image.codec.JPEGImageEncoderImpl;
public class rysunek extends JApplet implements MouseMotionListener,
MouseListener {
int x = 0;
int y = 0;
int a = 0;
private Graphics bufferGraphics;
private BufferedImage bufferImage;
public void init() {
addMouseMotionListener(this);
addMouseListener(this);
bufferImage = new BufferedImage(getWidth(), getHeight(),
BufferedImage.TYPE_INT_RGB);
bufferGraphics = bufferImage.getGraphics();
}
public void mouseMoved(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
if (a == 1) {
x = e.getX();
y = e.getY();
bufferGraphics.setColor(Color.RED);
bufferGraphics.fillOval(x, y, 5, 5);
repaint();
}
}
public void mouseClicked(MouseEvent e) {
int button = e.getButton();
if (button == MouseEvent.BUTTON3) {
repaint();
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
int button = e.getButton();
if (button == MouseEvent.BUTTON3) {
a = 0;
repaint();
}
if (button == MouseEvent.BUTTON1) {
a = 1;
}
}
public void mouseReleased(MouseEvent e) {
try {
OutputStream out = new FileOutputStream(new File("/tmp/a.jpg"));
JPEGImageEncoderImpl j = new JPEGImageEncoderImpl(out);
j.encode(bufferImage);
out.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
g.drawImage(bufferImage, 0, 0, null);
}
}po puszczeniu przycisku myszy tworzy plik /tmp/a.jpg
Offline


Użytkownik



ooo wielka dziękówka! O to chodziło! Możesz mi jeszcze napisać jak zdeklarować background i wielkość okna??
Offline



1NF:rM@7iON1SP0vvErr




Klasyczny background czy zdjęcie jako background ?
zdjęcie:
@Override
protected void paintComponent( Graphics g )
{
super.paintComponent( g );
Dimension size = this.getSize() ;
g.drawImage( image, 10, 10, size.width-20, size.height-20, null ) ;
}klasyczny:
Konstruktor klasy()
{
//..... kod.....
setBackground(Color.RED) //przykład
........ kod.....
}Wielkośc okna ?
Konstruktor...()
{
//kod...
setSize(800,600) //przykład
//kod...
}Offline


Użytkownik



setSize(800,600) działa ale niebardzo wiem gdzie wstawić - setBackground(Color.RED) bo cały czas mam czarny kolor tła.
Jeszcze jedna prośba - byłby ktoś w stanie opisać komentarzami kolejno co za co odpowiada??( np za co odpowiadają tam if'y?? tzn jakie warunki spełaniają bo nieznam składni javy także niebardzo wiem może podam przykład:
ta częśc:
public void mouseDragged(MouseEvent e) {
if (a == 1) {
x = e.getX();
y = e.getY();
bufferGraphics.setColor(Color.GREEN);
bufferGraphics.fillOval(x, y, 10, 10);
repaint();
}
}
wiem że jest odpowiedzialna za kolor którym rysuje i grubość typu oval ( tak to rozumie )
ale już niebardzo kumam dlaczego - jeżeli a==1???
Jest ktoś w stanie ten kod objąć komentarzami??
Offline

Członek DUG


import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.swing.JApplet;
import sun.awt.image.codec.JPEGImageEncoderImpl;
public class rysunek extends JApplet implements MouseMotionListener,
MouseListener {
int x = 0;
int y = 0;
int a = 0;
private Graphics bufferGraphics;
private BufferedImage bufferImage;
@Override
public void init() {
resize(400, 400); //ustawia rozmiar okna
addMouseMotionListener(this); //rejestruje listenera reagujacego na ruch mysza oraz na przyciski
addMouseListener(this);
bufferImage = new BufferedImage(getWidth(), getHeight(),
BufferedImage.TYPE_INT_RGB);
bufferGraphics = bufferImage.getGraphics();
bufferGraphics.setColor(Color.BLUE);
bufferGraphics.fillRect(0, 0, getWidth(), getHeight());
}
public void mouseMoved(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
if (a == 1) { //sprawdza czy lewy przyciski myszy jest wcisniety
x = e.getX();
y = e.getY();
bufferGraphics.setColor(Color.RED);
bufferGraphics.fillOval(x, y, 5, 5);
repaint();
}
}
public void mouseClicked(MouseEvent e) {
int button = e.getButton();
if (button == MouseEvent.BUTTON3) {
repaint();
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
int button = e.getButton();
if (button == MouseEvent.BUTTON3) {
a = 0; //prawy przycisk myszy
repaint();
}
if (button == MouseEvent.BUTTON1) {
a = 1; //lewy przycisk myszy
}
}
public void mouseReleased(MouseEvent e) {
try {
OutputStream out = new FileOutputStream(new File("/tmp/a.jpg"));
JPEGImageEncoderImpl j = new JPEGImageEncoderImpl(out);
j.encode(bufferImage);
out.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
g.drawImage(bufferImage, 0, 0, null);
}
}wypelnianie tla zrobilem prze rysowanie prostokata, bardzo brzydko ale nie mam czasu szukac bo niedlugo mam egzamin.
Offline
Strony: 1