Basic 2d graphics in Java

T

tomcees_pc

Hello:

I'm working through re-learning java and would like to solicit some help.

Can anyone share some simple java code to:

1. Set up a small (say 320w x 240h) 2d window.
2. Set(color) and Read (color) of pixels within this window.

TIA for your help,
TomC
 
S

Stefan Ram

Can anyone share some simple java code to:
1. Set up a small (say 320w x 240h) 2d window.
2. Set(color) and Read (color) of pixels within this window.

class Main extends javax.swing.JComponent implements java.lang.Runnable
{ final int X = 320; final int Y = 200;
private static final long serialVersionUID = 0L;
final java.awt.image.BufferedImage window
= new java.awt.image.BufferedImage
( X, Y, java.awt.image.BufferedImage.TYPE_INT_RGB );
public int readColor( final int x, final int y )
{ return Main.this.window.getRGB( x, y ); }
public void setColor( final int x, final int y, final int color )
{ Main.this.window.setRGB( x, y, color ); }
public static void main( final java.lang.String args[] )
{ java.awt.EventQueue.invokeLater( new Main() ); }
@java.lang.Override public final void run()
{ final javax.swing.JFrame frame = new javax.swing.JFrame( "Main" );
Main.this.setPreferredSize( new java.awt.Dimension( 320, 200 ));
Main.this.setColor( X/2, Y/2, 0xFFFFFF );
java.lang.System.out.println( Main.this.readColor( X/2, Y/2 ));
frame.setDefaultCloseOperation( javax.swing.JFrame.EXIT_ON_CLOSE );
frame.add( Main.this ); frame.pack(); frame.setVisible( true ); }
@java.lang.Override
public void paintComponent( final java.awt.Graphics graphics )
{ graphics.drawImage( Main.this.window, 0, 0, null ); }}
 
J

Joerg Meier

If anyone had written code formatted like that when I was working I'd
have sacked the bugger.

I was thinking the same reading about Stefan teaching students his
ridiculously eccentric code style. I wonder if they (or he) realizes that
if they are ever asked to provide a code sample before or during an
interview, they'll be unceremoniously asked to leave.

Liebe Gruesse,
Joerg
 
T

tomcees_pc

Hello:

I'm working through re-learning java and would like to solicit some help.

Can anyone share some simple java code to:

1. Set up a small (say 320w x 240h) 2d window.
2. Set(color) and Read (color) of pixels within this window.

TIA for your help,



Try this



With suitable acknowledgments to Stefan Ram of this parish.



import java.awt.Dimension;

import java.awt.EventQueue;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import javax.swing.JComponent;

import javax.swing.JFrame;



class Main extends JComponent implements Runnable {

int X = 320;

int Y = 200;



private static final long serialVersionUID = 0L;

BufferedImage window = new BufferedImage( X, Y,

BufferedImage.TYPE_INT_RGB );



public int readColor(int x, int y ){

return window.getRGB( x, y );

}



public void setColor( int x, int y, int color ){

window.setRGB( x, y, color );

}



public static void main(String args[] ){

EventQueue.invokeLater(new Main() );

}



@Override

public void run(){

JFrame frame = new JFrame( "Main" );

setPreferredSize( new Dimension( X, Y ));

setColor( X/2, Y/2, 0xFFFFFF );

System.out.println(readColor( X/2, Y/2 ));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );

frame.add(this);

frame.pack();

frame.setVisible( true );

}



@Override

public void paintComponent(Graphics graphics ){

graphics.drawImage(window, 0, 0, null );

}

}







--

Lipska the Kat�: Troll hunter, sandbox destroyer,

treacherous feline and farscape dreamer of Aeryn Sun

GNU/Linux user #560883 - http://www.linuxcounter.net





--

Lipska the Kat�: Troll hunter, sandbox destroyer,

treacherous feline and farscape dreamer of Aeryn Sun

GNU/Linux user #560883 - http://www.linuxcounter.net

Works nicely! Thanks to both of you for the courteous, helpful response!

Regards,
TomC
 
J

Jeff Higgins

Hello:

I'm working through re-learning java and would like to solicit some help.

Can anyone share some simple java code to:

1. Set up a small (say 320w x 240h) 2d window.
2. Set(color) and Read (color) of pixels within this window.

TIA for your help,
TomC
Just cause so many are heaping on Swing lately.

package pixel.test;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.PixelReader;
import javafx.scene.image.PixelWriter;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class PixelTest extends Application {

WritableImage image = new WritableImage(320,240);
PixelReader pixelReader = image.getPixelReader();
PixelWriter pixelWriter = image.getPixelWriter();

//setPixel and readPixel left as an exercise

@Override
public void start(Stage primaryStage) {
ImageView imageView = new ImageView();
imageView.setImage(image);
StackPane root = new StackPane();
root.getChildren().add(imageView);
Scene scene = new Scene(root, 320, 240);
primaryStage.setTitle("Pixel Test");
primaryStage.setScene(scene);
primaryStage.show();
}

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top