
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.PaintContext;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.ColorModel;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class RoundGradientPaintFill extends JPanel{
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
RoundRectangle2D r = new RoundRectangle2D.Float(5, 5, 150, 150, 25,
25);
RoundGradientPaint rgp = new RoundGradientPaint(75, 75, Color.magenta,
new Point2D.Double(0, 85), Color.blue);
g2.setPaint(rgp);
g2.fill(r);
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.getContentPane().add(new RoundGradientPaintFill());
f.setSize(200, 200);
f.show();
}
class RoundGradientPaint implements Paint {
protected Point2D point;
protected Point2D mRadius;
protected Color mPointColor, mBackgroundColor;
public RoundGradientPaint(double x, double y, Color pointColor,
Point2D radius, Color backgroundColor) {
if (radius.distance(0, 0) <= 0)
throw new IllegalArgumentException("Radius must be greater than 0.");
point = new Point2D.Double(x, y); mPointColor = pointColor;
mRadius = radius;
mBackgroundColor = backgroundColor;
}
public PaintContext createContext(ColorModel cm, Rectangle deviceBounds,
Rectangle2D userBounds, AffineTransform xform, RenderingHints hints) {
Point2D transformedPoint = xform.transform(point, null);
Point2D transformedRadius = xform.deltaTransform(mRadius, null);
return new RoundGradientContext(transformedPoint, mPointColor,
transformedRadius, mBackgroundColor);
}
public int getTransparency() {
int a1 = mPointColor.getAlpha();
int a2 = mBackgroundColor.getAlpha();
return (((a1 & a2) == 0xff) ? OPAQUE : TRANSLUCENT);
}
}
public class RoundGradientContext implements PaintContext {
protected Point2D mPoint;
protected Point2D mRadius;
protected Color color1, color2;
public RoundGradientContext(Point2D p, Color c1, Point2D r, Color c2) {
mPoint = p;
color1 = c1;
mRadius = r;
color2 = c2;
}
public void dispose() {
}
public ColorModel getColorModel() {
return ColorModel.getRGBdefault();
}
public Raster getRaster(int x, int y, int w, int h) {
WritableRaster raster = getColorModel().createCompatibleWritableRaster(
w, h);
int[] data = new int[w * h * 4];
for (int j = 0; j < h; j++) {
for (int i = 0; i < w; i++) {
double distance = mPoint.distance(x + i, y + j);
double radius = mRadius.distance(0, 0);
double ratio = distance / radius;
if (ratio > 1.0)
ratio = 1.0;
int base = (j * w + i) * 4;
data[base + 0] = (int) (color1.getRed() + ratio
* (color2.getRed() - color1.getRed()));
data[base + 1] = (int) (color1.getGreen() + ratio
* (color2.getGreen() - color1.getGreen()));
data[base + 2] = (int) (color1.getBlue() + ratio
* (color2.getBlue() - color1.getBlue()));
data[base + 3] = (int) (color1.getAlpha() + ratio
* (color2.getAlpha() - color1.getAlpha()));
}
}
raster.setPixels(0, 0, w, h, data);
return raster;
}
}
}
|
|
|
GridLayout класс макет менеджеру, что изложены компоненты контейнера в прямоугольной сетки. Контейнер состоит из одинаковых по размеру прямоугольника, и одним из компонентов находится в каждом прямоугольнике. GridLayout имеет следующие конструкторы:
GridLayout(int rows, int cols)
GridLayout(int rows, int cols, int hgap, int vgap)
Здесь:
hgap=horizontal gap between components
vgap=vertical gap between components
rows=number of rows in the grid
cols=number of column in the grid

import java.awt.*;
import java.applet.Applet;
public class Grid extends Applet{
// Adding Labels
Label one = new Label("Rohit");
Label two = new Label("Mohit");
Label three = new Label("Ashish");
Label four = new Label("Dinesh");
Label five = new Label("Kshitij");
Label six = new Label("Anand");
Label seven = new Label("Pradeep");
Label eight = new Label("Vikas");
Label nine = new Label("Sandeep");
Label ten = new Label("Pankaj");
Label eleven= new Label("Narang");
Label twelve= new Label("Khariwal");
public void init(){
setLayout(new GridLayout(4,3));
add(one); one.setBackground(Color.red);
add(two); two.setBackground(Color.orange);
add(three); three.setBackground(Color.red);
add(four); four.setBackground(Color.green);
add(five); five.setBackground(Color.pink);
add(six); six.setBackground(Color.green);
add(seven); seven.setBackground(Color.blue);
add(eight); eight.setBackground(Color.yellow);
add(nine); nine.setBackground(Color.blue);
add(ten); ten.setBackground(Color.orange);
add(eleven); eleven.setBackground(Color.white);
add(twelve); twelve.setBackground(Color.orange);
}
}
|
|

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Arc2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JApplet;
import javax.swing.JFrame;
public class GradientPaintEllipse extends JApplet {
public void init() {
setBackground(Color.white);
setForeground(Color.white);
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
int x = 5;
int y = 7;
// fill Ellipse2D.Double
GradientPaint redtowhite = new GradientPaint(x, y, Color.red, 200, y, Color.white);
g2.setPaint(redtowhite);
g2.fill(new Ellipse2D.Double(x, y, 200, 200));
g2.setPaint(Color.black);
g2.drawString("Filled Ellipse2D", x,250);
}
public static void main(String s[]) {
JFrame f = new JFrame("");
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
JApplet applet = new GradientPaintEllipse();
f.getContentPane().add("Center", applet);
applet.init();
f.pack();
f.setSize(new Dimension(300, 300));
f.show();
}
}
|
|
|
Этот пример демонстрирует, как контролировать размер и расположение кадр, когда она достигает максимума:
// Create frame
Frame frame = new Frame();
// Determine location and size of a maximized frame
int x = 100;
int y = 100;
int width = 300;
int height = 300;
Rectangle bounds = new Rectangle(x, y, width, height);
// Set the maximized bounds
frame.setMaximizedBounds(bounds);
|
|
|
Этот совет Java иллюстрирует метод получения размера экрана. Разработчик может использовать getScreenSize (), чтобы получить размер экрана по умолчанию.
// Current size of the default screen
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
|
Кроме того, в случае, если один или несколько экранов настоящем, разработчик может получить размер экрана, используя для петлю, как показано ниже.
GraphicsEnvironment environment =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = environment.getScreenDevices();
// Get size of each screen
for (int i=0; i<devices.length; i++) {
DisplayMode dmode = devices[i].getDisplayMode();
int screenWidth = dmode.getWidth();
int screenHeight = dmode.getHeight();
}
|
|
|
Курсор собственности компонент может быть изменен в любое время, позвонив Component.setCursor () в Java. См. java.awt.Cursor класс для имеющихся стандартных фигур курсора.
// Create a component
Component component = new Button("OK");
// By default, the component's cursor is Cursor.DEFAULT_CURSOR
Cursor cursor = component.getCursor();
// Change the component's cursor to another shape
component.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
|
|
Этот совет Java иллюстрирует метод сбора все кадры, созданный разработчиком в заявке. Кроме того, он также может определять название и видимости кадры.
// Collect all active frames in a array
Frame[] activeframes = Frame.getFrames();
for (int i=0; i<activeframes.length; i++) {
// Get frame's title
String title = activeframes[i].getTitle();
// Determine if the frame is visible
boolean isVisible = activeframes[i].isVisible();
}
|
|
|
Java.awt.Robot класс используется для взять контроль клавиатуры и мыши. Как только вы получите контроля, вы можете делать любой вид деятельности, связанной с мышью и клавиатурой через Java-код. Этот класс используется в основном для автоматизации тестирования.
Этот образец кода покажет использование класса роботов для обработки событий клавиатуры. Если вы запустите этот код и открытый блокнот то этот код будет привет Буду писать в блокноте.
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class RobotExp {
public static void main(String[] args) {
try {
Robot robot = new Robot();
// Creates the delay of 5 sec so that you can open notepad before
// Robot start writting
robot.delay(5000);
robot.keyPress(KeyEvent.VK_H);
robot.keyPress(KeyEvent.VK_I);
robot.keyPress(KeyEvent.VK_SPACE);
robot.keyPress(KeyEvent.VK_B);
robot.keyPress(KeyEvent.VK_U);
robot.keyPress(KeyEvent.VK_D);
robot.keyPress(KeyEvent.VK_Y);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
|
|
import java.awt.*;
import java.awt.event.*;
public class UpperTF extends Frame {
public static void main(String argv[]) {
new UpperTF().setVisible(true);
}
public UpperTF() {
setLayout(new FlowLayout());
TextField tf = new TextField(10);
add(tf);
tf.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (Character.isLetter(e.getKeyChar()))
e.setModifiers(Event.SHIFT_MASK);
}
});
pack();
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
}
public Dimension getPreferredSize() {
return new Dimension(200,200);
}
}
|
|
|
Этот совет Java содержит программу, которая преобразует данный красный, зеленый и синий (RGB Color Space) в соответствующие оттенка, насыщенности и интенсивности значений (HSI цветовом пространстве).
import java.awt.Color;
import java.io.PrintStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class RGB2HSIConverter
{
public RGB2HSIConverter()
{
}
public static void main(String args[])
{
if(args.length > 2)
{
int ai[] = new int[3];
for(int i = 0; i < 3; i++)
ai[i] = Integer.parseInt(args[i]);
float af[] = Color.RGBtoHSB(ai[0], ai[1], ai[2], null);
String args1[] = {
"H=", "S=", "I="
};
DecimalFormat decimalformat = new DecimalFormat("0.000");
for(int j = 0; j < 3; j++)
System.out.println(args1[j] + decimalformat.format(af[j]));
} else
{
System.err.println("usage: java RGB2HSIConverter <r> <g> <b>");
System.exit(1);
}
}
}
|
|