Applety button, text, label, combo-box, …. events, layouts,…

27
applety button, text, label, combo-box, …. events, layouts,…

Transcript of Applety button, text, label, combo-box, …. events, layouts,…

applety• button, text, label, combo-box, ….• events,• layouts,…

Prvý…

Applet1.html:. . . <applet code=Applet1 width=200 height=200> </applet> . . .

import java.awt.*;

import java.applet.*;

public class Applet1 extends Applet {

public void paint(Graphics g) {

g.drawString("First applet", 10, 10);

}

}

appletviewer file:C:\borovan\java\eclipse\Applet1\Applet1.html

Druhý…import java.awt.*; import java.applet.*;

public class Applet2 extends Applet {

public void paint(Graphics g) { g.drawString("Second applet", 10, 15); g.draw3DRect(0, 0, 100, 20, true); }

}

Život appletupublic class Applet3 extends Applet { String s; int inits = 0; int starts = 0; int stops = 0;

public void init() { inits++; }

public void start() { starts++; }

public void stop() { stops++; }

public void paint(Graphics g) { s = "inits: " + inits + ", starts: " + starts + ", stops: " + stops; g.drawString(s, 10, 10); } }

init( ) - je volaná, keď je applet prvý krát vytvorený, po reload

start( ) - je volaná, keď je applet spustený web browseorm, po refresh, resp. v applet vieweri, po restarte.

paint( ) - pri každom prekreslení appletu

stop( ) - keď web browser, resp. applet viewer zastaví applet.

destroy( ) – pri uvoľnení resourcov appletu

Život appletupublic class Simple extends Applet {

StringBuffer buffer;

public void init() {buffer = new StringBuffer();

addItem("initializing... "); }

public void start() { addItem("starting... "); }

public void stop() { addItem("stopping... "); }

public void destroy() { addItem("preparing for unloading..."); }

void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); }

public void paint(Graphics g) { g.drawRect(0, 0, size().width-1, size().height-

1); g.drawString(buffer.toString(), 5, 15); }}

initializing...

starting...

stopping...

preparing for unloading...

AWT - grafika

public void paint(Graphics g) {

Dimension d = size(); int x = 5; int y = 7;

Color bg = getBackground(); Color fg = getForeground();

int gridWidth = d.width / 7; int gridHeight = d.height / 2; int stringY = gridHeight - 7; int rectWidth = gridWidth - 2*x; int rectHeight = stringY - maxCharHeight - y;

g.setColor(bg); g.draw3DRect(0, 0, d.width - 1, d.height - 1, true); g.draw3DRect(3, 3, d.width - 7, d.height - 7,

false); g.setColor(fg);

// drawLine() g.drawLine(x, y+rectHeight-1, x + rectWidth, y); g.drawString("drawLine()", x, stringY); x += gridWidth;

// drawRect() g.drawRect(x, y, rectWidth, rectHeight); g.drawString("drawRect()", x, stringY); x += gridWidth;

// draw3DRect()

g.setColor(bg);

g.draw3DRect(x, y, rectWidth, rectHeight, true);

g.setColor(fg);

g.drawString("draw3DRect()", x, stringY);

x += gridWidth;

// drawRoundRect() g.drawRoundRect(x, y, rectWidth, rectHeight, 10, 10); g.drawString("drawRoundRect()", x, stringY);x += gridWidth;

// drawOval() g.drawOval(x, y, rectWidth, rectHeight); g.drawString("drawOval()", x, stringY);x += gridWidth;// drawArc() g.drawArc(x, y, rectWidth, rectHeight, 90, 135); g.drawString("drawArc()", x, stringY);x += gridWidth;

// drawPolygon() Polygon polygon = new Polygon();polygon.addPoint(x, y);polygon.addPoint(x+rectWidth, y+rectHeight);polygon.addPoint(x, y+rectHeight);polygon.addPoint(x+rectWidth, y);g.drawPolygon(polygon); g.drawString("drawPolygon()", x, stringY);

Uhlopriečkyimport java.awt.*;

import java.applet.Applet;

public class Nuhol extends Applet {

public void paint(Graphics g) {

int sizex = 500;

int sizey = 500;

resize(sizex,sizey);

int sx = sizex / 2;

int sy = sizey / 2;

int rad = ((sx>sy)?sy:sx)*2/3;

int N = 16;

int X[] = new int[N];

int Y[] = new int[N];

for(int i=0; i<N; i++) {

X[i] = (int)Math.round(sx+rad*

Math.cos((float)i*2*Math.PI/N));

Y[i] = (int)Math.round(sy+rad*

Math.sin((float)i*2*Math.PI/N));

}

for(int i=0;i<N; i++)

for(int j=i;j<N; j++){

if (2*(j-i) == N) continue;

g.drawLine(X[i], Y[i],X[j], Y[j]);

}

}

KorytnačkaDefinujte triedu Turtle s nasledujúcimi metódami:

void Turtle(int width, int height);       // inicializácia korytnačk

void ZmenSmer(float nSmer);       // absolútna zmena smeru korytnačky

void ZmenXY(float nX, float nY);  // absolútna zmena polohy

void Vlavo(float Uhol);          // otočí korytnačku vľavo o zadaný uhol

void Vpravo(float Uhol);         // otočí korytnačku vpravo o zadaný uhol

void Dopredu(float Dlzka);       // pohne korytnačku dopredu o určenú dĺžku

void vl(float Uhol);             // skratka príkazu Vlavo    

void vp(float Uhol);             // skratka príkazu Vpravo 

void dp(float Dlzka);            // skratka príkazu Dopredu

Príklad: Nasledujúce príkazy nakreslia štvorec:

Dopredu(100);  // choď dopredu 100 krokovVlavo(90);     // otoč sa vľavo o 90 stupňovDopredu(100);Vlavo(90);Dopredu(100);Vlavo(90);Dopredu(100);

Korytnačkaimport java.awt.*;

import java.applet.Applet;

public class Turtle extends Applet {

int sizeX = 500;

int sizeY = 500;

float X = sizeX/2;

float Y = sizeY/2;

float dir = 0;

Graphics gg;

public void Turtle(int width, int height) {

sizeX = width;

sizeY = height;

resize (sizeX,sizeY);

X = sizeX/2;

Y = sizeY/2;

dir = 0;

}

public void Vlavo(float Uhol) {

dir -= Uhol;

}

public void Vpravo(float Uhol) {

dir += Uhol;

}

public void Dopredu(float Dlzka) {

float X1 = X + (float)(Dlzka*Math.cos(dir*2*Math.PI/360));

float Y1 = Y + (float)(Dlzka*Math.sin(dir*2*Math.PI/360));

gg.drawLine((int)X,(int)Y,(int)X1,(int)Y1);

X = X1; Y = Y1;

}

public void ZmenXY(float nX, float nY) {

X = nX; Y = nY;

}

public void paint(Graphics g) {

gg = g;

Turtle(500,500);

Dopredu(100); Vlavo(90);

Dopredu(100); Vlavo(90);

Dopredu(100); Vlavo(90);

Dopredu(100); Vlavo(90);

ZmenXY(100,100);

for(int i=0; i<150; i++){ Dopredu(150); Vlavo(179); }

}

}

Korytnačkapublic class Turtle extends Applet {

Image img;

public void Dopredu(float Dlzka) {

float X1 = X + (float)(Dlzka*Math.cos(dir*2*Math.PI/360));

float Y1 = Y + (float)(Dlzka*Math.sin(dir*2*Math.PI/360));

img.getGraphics().drawLine((int)X,(int)Y,(int)X1,(int)Y1);

X = X1; Y = Y1;

}

public void paint(Graphics g) {

g.drawImage(img,1,1,Color.YELLOW,this);

}

public void init() {

resize(sizeX,sizeY);

img = createImage(sizeX,sizeY);

}

public void start() { Dopredu(100); Vlavo(90); Dopredu(100); Vlavo(90); Dopredu(100); Vlavo(90); Dopredu(100); Vlavo(90);

ZmenXY(100,100); for(int i=0; i<150; i++){ Dopredu(150); Vlavo(179); } repaint(); }}

Ručičkaimport java.applet.*;import java.awt.*;

public class Rucicka extends Applet implements Runnable {

int width, height; int i = 0; Thread t = null;

public void init() { width = getSize().width; height = getSize().height; setBackground( Color.BLUE ); }

public void start() { t = new Thread( this ); t.start(); }}

public void run() { try { while (true) { i++; i %= 60; repaint(); t.sleep( 1000 ); } } catch (InterruptedException e) { /*…*/ }}

public void paint( Graphics g ) { g.setColor( Color.ORANGE ); g.drawLine( width/2, height/2,

(int)(width/2+width/3*Math.cos(i/30.0*Math.PI)),

(int)(height/2+height/3*Math.sin(i/30.0*Math.PI)));}

AWT containtery

Gombíky

import java.awt.*; import java.applet.*; public class Button1 extends Applet {

Button b1 = new Button("Button 1"), b2 = new Button("Button 2");

public void init() { add(b1); add(b2); }

}

Eventy import java.awt.*; import java.applet.*;

public class Button2 extends Applet { Button b1 = new Button("Button 1"), b2 = new Button("Button 2");

public void init() { add(b1); add(b2); }

public boolean action(Event evt, Object arg) { if(evt.target.equals(b1)) getAppletContext().showStatus("Button 1"); else if(evt.target.equals(b2)) getAppletContext().showStatus("Button 2"); else return super.action(evt, arg); return true; } }

if(arg.equals("Button 1")) getAppletContext().showStatus("Button 1");

Text field public class TextField1 extends Applet { Button b1 = new Button("Get Text"), b2 = new Button("Set Text"); TextField t = new TextField("Starting text", 30); String s = new String(); public void init() { add(b1); add(b2); add(t); }

public boolean action (Event evt, Object arg) { if (evt.target.equals(b1)) { getAppletContext().showStatus(t.getText()); s = t.getSelectedText(); if(s.length() == 0) s = t.getText(); t.setEditable(true); } else if (evt.target.equals(b2)) { t.setText("Inserted by Button 2: " + s); t.setEditable(false); } else return super.action(evt, arg); return true; } }

Text areapublic class TextArea1 extends Applet { Button b1 = new Button("Text Area 1"); Button b2 = new Button("Text Area 2"); Button b3 = new Button("Replace Text"); Button b4 = new Button("Insert Text"); TextArea t1 = new TextArea("t1", 1, 30); TextArea t2 = new TextArea("t2", 4, 30);

public void init() { add(b1); add(t1); add(b2); add(t2); add(b3); add(b4); }

public boolean action (Event evt, Object arg) { if(evt.target.equals(b1)) getAppletContext().showStatus(t1.getText()); else if(evt.target.equals(b2)) { t2.setText("Inserted by Button 2"); t2.appendText(": " + t1.getText()); getAppletContext().showStatus(t2.getText()); } else if(evt.target.equals(b3)) { String s = " Replacement "; t2.replaceText(s, 3, 3 + s.length()); } else if(evt.target.equals(b4)) t2.insertText(" Inserted ", 10); else return super.action(evt, arg); return true; } }

Labelpublic class Label1 extends Applet { TextField t1 = new TextField("t1", 10); Label labl1 = new Label("TextField t1"); Label labl2 = new Label(" "); Label labl3 = new Label(" ", Label.RIGHT); Button b1 = new Button("Test 1"); Button b2 = new Button("Test 2"); public void init() { add(labl1); add(t1); add(b1); add(labl2); add(b2); add(labl3); }

public boolean action (Event evt, Object arg) { if(evt.target.equals(b1)) labl2.setText("Text set into Label"); else if(evt.target.equals(b2)) { if(labl3.getText().trim().length() == 0) labl3.setText("labl3"); if(labl3.getAlignment() == Label.LEFT) labl3.setAlignment(Label.CENTER); else if(labl3.getAlignment()==Label.CENTER) labl3.setAlignment(Label.RIGHT); else if(labl3.getAlignment() == Label.RIGHT) labl3.setAlignment(Label.LEFT); } else return super.action(evt, arg); return true; } }

CheckBoxpublic class CheckBox1 extends Applet { TextArea t = new TextArea(6, 20); Checkbox cb1 = new Checkbox("Check Box 1"); Checkbox cb2 = new Checkbox("Check Box 2"); Checkbox cb3 = new Checkbox("Check Box 3"); public void init() { add(t); add(cb1); add(cb2); add(cb3); }

public boolean action (Event evt, Object arg) { if(evt.target.equals(cb1)) trace("1", cb1.getState()); else if(evt.target.equals(cb2)) trace("2", cb2.getState()); else if(evt.target.equals(cb3)) trace("3", cb3.getState()); else return super.action(evt, arg); return true; }

void trace(String b, boolean state) { if(state) t.appendText("Box " + b + " Set\n"); else t.appendText("Box " + b + " Cleared\n"); } }

RadioButton public class RadioButton1 extends Applet { TextField t = new TextField("Radio button 2", 30); CheckboxGroup g = new CheckboxGroup(); Checkbox cb1 = new Checkbox("one", g, false), cb2 = new Checkbox("two", g, true), cb3 = new Checkbox("three", g, false);

public void init() { t.setEditable(false); add(t); add(cb1); add(cb2); add(cb3); }

public boolean action (Event evt, Object arg) { if(evt.target.equals(cb1)) t.setText("Radio button 1"); else if(evt.target.equals(cb2)) t.setText("Radio button 2"); else if(evt.target.equals(cb3)) t.setText("Radio button 3"); else return super.action(evt, arg); return true; } }

Combopublic class Choice1 extends Applet { String[] description = { "Ebullient", "Obtuse", "Recalcitrant", "Brilliant", "Somnescent", "Timorous", "Florid", "Putrescent" }; TextField t = new TextField(30); Choice c = new Choice(); Button b = new Button("Add items"); int count = 0;

public void init() { t.setEditable(false); for(int i = 0; i < 4; i++) c.addItem(description[count++]); add(t); add(c); add(b); }

public boolean action (Event evt, Object arg) { if(evt.target.equals(c)) t.setText("index: "+c.getSelectedIndex()+" "+(String)arg); else if(evt.target.equals(b)) { if(count < description.length) c.addItem(description[count++]); } else return super.action(evt, arg); return true; } }

List Boximport java.awt.*; import java.applet.*; public class List1 extends Applet { String[] flavors = { "Chocolate", "Strawberry", "Vanilla Fudge Swirl", "Mint Chip", "Mocha Almond Fudge", "Rum Raisin", "Praline Cream", "Mud Pie" }; List lst = new List(6, true); TextArea t = new TextArea(flavors.length, 30); Button b = new Button("test"); int count = 0; public void init() { t.setEditable(false); for(int i = 0; i < 4; i++) lst.addItem(flavors[count++]); add(t); add(lst); add(b); } public boolean action (Event evt, Object arg) { if(evt.target.equals(lst)) { t.setText(""); String[] items = lst.getSelectedItems(); for(int i = 0; i < items.length; i++) t.appendText(items[i] + "\n"); } else if(evt.target.equals(b)) { if(count < flavors.length) lst.addItem(flavors[count++], 0); } else return super.action(evt, arg); return true; } }

handleEventpublic boolean handleEvent(Event evt) { if(evt.id == Event.LIST_SELECT || evt.id == Event.LIST_DESELECT) { if(evt.target.equals(lst)) { t.setText(""); String[] items = lst.getSelectedItems(); for(int i = 0; i < items.length; i++) t.appendText(items[i] + "\n"); } else return super.handleEvent(evt); } else return super.handleEvent(evt); return true; } public boolean action(Event evt, Object arg) { if(evt.target.equals(b)) { if(count < flavors.length) lst.addItem(flavors[count++], 0); } else return super.action(evt, arg); return true; }

FlowLayout

import java.awt.*;import java.applet.*;

public class FlowLayout1 extends Applet { public void init() { setLayout(new FlowLayout()); for(int i = 0; i < 20; i++) add(new Button("Button " + i)); } }

BorderLayoutimport java.awt.*; import java.applet.*;

public class BorderLayout1 extends Applet { public void init() { int i = 0; setLayout(new BorderLayout()); add("North", new Button("Button " + i++)); add("South", new Button("Button " + i++)); add("East", new Button("Button " + i++)); add("West", new Button("Button " + i++)); add("Center", new Button("Button " + i++)); } }

add(String direction, Component);

Direction is : "North", "South", "East", "West", and "Center".

GridLayout

import java.awt.*; import java.applet.*;

public class GridLayout1 extends Applet { public void init() { setLayout(new GridLayout(7,3)); for(int i = 0; i < 20; i++) add(new Button("Button " + i)); } }

CardLayoutimport java.awt.*; import java.applet.Applet; class ButtonPanel extends Panel { ButtonPanel(String id) { setLayout(new BorderLayout()); add("Center", new Button(id)); } } public class CardLayout1 extends Applet { Button first = new Button("First"), second = new Button("Second"), third = new Button("Third"); Panel cards = new Panel(); CardLayout cl = new CardLayout(); public void init() { setLayout(new BorderLayout()); Panel p = new Panel(); p.setLayout(new FlowLayout()); p.add(first); p.add(second); p.add(third); add("North", p); cards.setLayout(cl); cards.add("First card", new ButtonPanel("The first one")); cards.add("Second card", new ButtonPanel("The second one")); cards.add("Third card", new ButtonPanel("The third one")); add("Center", cards); } }

public boolean action(Event evt, Object arg) { if (evt.target.equals(first)) cl.first(cards); else if (evt.target.equals(second)) { cl.first(cards); cl.next(cards); } else if (evt.target.equals(third)) cl.last(cards); else return super.action(evt, arg); return true; }