//Example.java
成都創(chuàng)新互聯(lián)專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、前進(jìn)網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、前進(jìn)網(wǎng)絡(luò)營(yíng)銷(xiāo)、前進(jìn)企業(yè)策劃、前進(jìn)品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供前進(jìn)建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
class A{
float a;
static float b;
void setA(float a ){
this.a = a;
}
void setB(float b){
this.b = b;
}
float getA() {
return a;
}
float getB() {
return b;
}
void inputA() {
System.out.println(a);
}
static void inputB() {
System.out.println(b);
}
}
public class Example {
public static void main (String args[]){
/*代碼5] //通過(guò)類(lèi)名操作類(lèi)變量b,并賦值100
[代碼6] //通過(guò)類(lèi)名調(diào)用方法inputB()
A cat=new A();
A dog=new A();
[代碼7] //cat調(diào)用方法setA(int a)將cat的成員a的值設(shè)置為200
[代碼8] //cat調(diào)用方法setB(int b)將cat的成員b的值設(shè)置為400
[代碼9] //dog調(diào)用方法setA(int a)將dog的成員a的值設(shè)置為300
[代碼10] //dog調(diào)用方法setB(int b)將dog的成員b的值設(shè)置為800
[代碼11] //cat調(diào)用方法inputA()
[代碼12] //cat調(diào)用方法inputB()
[代碼13] //dog調(diào)用方法inputA()
[代碼14] //dog調(diào)用方法inputB()*/
A.b = 100;
A.inputB();
A cat = new A();
A dog = new A();
cat.setA(200);
cat.setB(300);
dog.setA(300);
dog.setB(800);
cat.inputA();
cat.inputB();
dog.inputA();
dog.inputB();
}
}
有一個(gè)要說(shuō)明的是,setA()與setB()的形參是浮點(diǎn)型的,所以如樓上所說(shuō),樓主代碼7到代碼10的形參設(shè)錯(cuò)了。但200,400,300,800是可以的。只是將int改為float.
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseListener;
import?javax.swing.*;
import?java.awt.*;
import?java.util.LinkedList;
public?class?DrawPoint?extends?JFrame?implements?MouseListener{
private?LinkedListPoint?list;//新建一個(gè)Point類(lèi)型的鏈表存儲(chǔ)用于存儲(chǔ)“節(jié)點(diǎn)”
private?final?int?WIDTH=318,HEIGHT=340;
private?Dimension?scrnsize;
private?Toolkit?toolkit?=?Toolkit.getDefaultToolkit();
public?DrawPoint()?{
//?TODO?Auto-generated?constructor?stub
list=new?LinkedListPoint();//鏈表初始化
//窗口設(shè)置部分,不比細(xì)究
this.setSize(WIDTH,HEIGHT);
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
scrnsize?=?toolkit.getScreenSize();
setLocation(scrnsize.width?/?2?-?getWidth()?/?2,
scrnsize.height?/?2?-?getHeight()?/?2);
this.addMouseListener(this);//添加窗口鼠標(biāo)監(jiān)聽(tīng)
this.setVisible(true);
}
@Override
public?void?mouseClicked(MouseEvent?e)?{
//?TODO?Auto-generated?method?stub
}
@Override
public?void?mouseEntered(MouseEvent?e)?{
//?TODO?Auto-generated?method?stub
}
@Override
public?void?mouseExited(MouseEvent?e)?{
//?TODO?Auto-generated?method?stub
}
@Override
public?void?mousePressed(MouseEvent?e)?{
//?TODO?Auto-generated?method?stub
}
@Override
public?void?mouseReleased(MouseEvent?e)?{
//為鼠標(biāo)按鈕釋放添加事件處理
//?TODO?Auto-generated?method?stub
int?x=e.getX();//獲取鼠標(biāo)的x坐標(biāo)
int?y=e.getY();//獲取鼠標(biāo)的y坐標(biāo)
String?str=JOptionPane.showInputDialog(null,?"請(qǐng)輸入改點(diǎn)標(biāo)記文字");
//顯示對(duì)話框,根據(jù)用戶輸入得到標(biāo)記文字
if(str!=null){//若標(biāo)記文字不為空,則該點(diǎn)視為有效點(diǎn),將該點(diǎn)加入鏈表
list.add(new?Point(x,y,str));
}
repaint();//用該函數(shù)調(diào)用paint()方法,進(jìn)行重構(gòu)操作
this.validate();
}
public?void?paint(Graphics?g){
if(list.isEmpty())//如果鏈表為空,不進(jìn)行任何操作,直接返回
return;
for(Point?p:list){//遍歷數(shù)組,獲取所有節(jié)點(diǎn)
g.drawOval(p.getX(),?p.getY(),?2,?2);//先畫(huà)點(diǎn)
g.drawString(p.getS(),?p.getX()+5,?p.getY()+6);//再標(biāo)注節(jié)點(diǎn)的描述性文字
}
}
public?static?void?main(String?args[]){
DrawPoint?p=new?DrawPoint();
}
}
class?Point?{//節(jié)點(diǎn)類(lèi),包含x坐標(biāo),y坐標(biāo),描述性文字3個(gè)屬性
private?int?x,y;//x坐標(biāo)和y坐標(biāo)
private?String?s;//描述性文字
public?Point(){
x=0;
y=0;
s="";
}
public?Point(int?x,int?y,String?s){
this.x=x;
this.y=y;
this.s=s;
}
public?int?getX(){
return?x;
}
public?int?getY(){
return?y;
}
public?String?getS(){
return?s;
}
}
java五角星用代碼打印出來(lái),主要是使用system.print函數(shù),代碼如下:
class kongzhitao{
public static void main(String[] args){
String[] wujiaoxing={" *"," * *","* * * *"," * *"," * *"," * * * *","* *"};
for(int i=0;i System.out.println(wujiaoxing[i]);
}
}
}
上代碼:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.LayoutManager;
import java.awt.Paint;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.event.*;
public class YuanYiDong extends JFrame{
private static int BANJIN=0;
private static int X=0;
private static int Y=0;
JTextField rTxt=new JTextField(5);
JTextField xField=new JTextField(5);
JTextField yField=new JTextField(5);
JButton paintBt=new JButton("畫(huà)");
JLabel huaban=new huaban();
JPanel jPanel=new JPanel();
JLabel banjingLabel,xLabel,yLabel;
public YuanYiDong(){
banjingLabel=new JLabel("半徑");
xLabel=new JLabel("X坐標(biāo)");
yLabel=new JLabel("Y坐標(biāo)");
this.setTitle("圓的移動(dòng)");
this.setLocation(300,100);
this.setSize(500, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.add(rTxt);
jPanel.setLayout(new FlowLayout());
add(huaban,BorderLayout.CENTER);
jPanel.add(banjingLabel);
jPanel.add(rTxt);
jPanel.add(xLabel);
jPanel.add(xField);
jPanel.add(yLabel);
jPanel.add(yField);
jPanel.add(paintBt);
add(jPanel,BorderLayout.NORTH);
paintBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
BANJIN=Integer.parseInt(rTxt.getText());
X=Integer.parseInt(xField.getText());
Y=Integer.parseInt(yField.getText());
huaban.repaint();
}
});
}
private void drawCirlce(Graphics g) {
g.setColor(Color.blue);
g.fillOval(X, Y, BANJIN,BANJIN);
}
public static void main(String[] args) {
YuanYiDong frame = new YuanYiDong();
}
public class huaban extends JLabel{
public huaban(){}
public void paint(Graphics g) {
Image image = createImage(getWidth(), getHeight());
drawCirlce(image.getGraphics());
g.drawImage(image, 0, 0, null);
}
}
}
給分吧!
代碼如下:
/**分析下例:我們只是new了一個(gè)對(duì)象并沒(méi)有調(diào)用Paint()方法那為什么會(huì)畫(huà)出圖呢?
* Graphics這個(gè)類(lèi)的對(duì)象就是一只畫(huà)筆,當(dāng)某容器調(diào)用paint()時(shí)就會(huì)在該容器中畫(huà)圖。
* 當(dāng)窗口產(chǎn)生時(shí)本身就存在一只畫(huà)筆,我們只需要拿到畫(huà)筆重寫(xiě)Paint()便可以隨心作畫(huà)。
*每次需要重畫(huà)的時(shí)候就會(huì)自動(dòng)調(diào)用paint(Graphics g)(什么時(shí)候需要重畫(huà)呢?如當(dāng)窗口被覆蓋又重新置頂時(shí),當(dāng)窗口最小化又最大化時(shí)等等)
*/
總結(jié):我們想要在容器中畫(huà)圖時(shí)只需要做的就是:??在該容器中重寫(xiě)Paint()?系統(tǒng)會(huì)自動(dòng)傳給我們畫(huà)筆,自動(dòng)調(diào)用paint方法按照我們的意愿進(jìn)行作畫(huà)。
public class TestGraphics extends Frame. {
public static void main(String []args) {
new TestGraphics("畫(huà)圖",100,100,200,200,Color.white);
}
public TestGraphics(String s,int x,int y,int w,int h,Color c) {
super(s);
this.setBounds(x, y, w, h);
this.setBackground(c);
this.setVisible(true);
}
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.magenta);
g.fillOval(100, 100, 50, 50);
g.setColor(Color.green);
g.fill3DRect(60, 100, 50, 50, false);
g.setColor(c);
}
}
小例子2:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
/**
原理是:在Frame中增加成員變量-容器ArrayList,用它來(lái)容納點(diǎn),每次點(diǎn)擊鼠標(biāo)就觸發(fā)了事件:往容器中添加一個(gè)點(diǎn),然后立即調(diào)用repaint方法強(qiáng)制畫(huà)出容器中所有的點(diǎn)來(lái)
所以我們利用容器來(lái)"裝"點(diǎn),然后通過(guò)iterator來(lái)遍歷畫(huà)出所有的點(diǎn)。
適配器類(lèi):使用適配器類(lèi)可以只重寫(xiě)我們需要的方法
因?yàn)檫@些適配器類(lèi)都已經(jīng)實(shí)現(xiàn)了相應(yīng)的接口即把所有的方法都空實(shí)現(xiàn)了一遍 我們只需要重寫(xiě)我們需要的方法即可
repaint -調(diào)用- update() - 調(diào)用?- paint();
*/
public class MyFrame. extends Frame. {
ArrayListPointal ;//泛型指定容器中只能放入Point
public MyFrame(String s) {
super(s);
al =new ArrayListPoint();
this.setBounds(100, 100, 200, 200);
this.setBackground(Color.darkGray);
this.setVisible(true);
this.addMouseListener(new MouseAdapter(){//匿名類(lèi)
@Override
public void mousePressed(MouseEvent e) {
MyFrame. f = (MyFrame)e.getSource();//e是事件,e.getSource()是獲取事件源即窗口 f
f.al.add(new Point(e.getX(),e.getY())); //而e.getX(),e.getY()則是獲取事件發(fā)生的x,y坐標(biāo)
repaint();//每次點(diǎn)擊鼠標(biāo)觸發(fā)事件時(shí)都有了新的點(diǎn),所以強(qiáng)制要求重畫(huà),才能立刻顯示出該點(diǎn)否則只有窗口被最小化又最大化后才能看到剛才的點(diǎn)
}
});
//匿名類(lèi):在參數(shù)處我們傳遞的是new WindowAdapter()? {匿名類(lèi)體} );他沒(méi)有名字,我們把它當(dāng)成WindowAdapter來(lái)用,為什么可以這樣呢?因?yàn)檎Z(yǔ)法上規(guī)定了匿名類(lèi)要么是實(shí)現(xiàn)了前面的接口,要么是從前面的類(lèi)繼承,就著前面父類(lèi)的名字來(lái)寫(xiě)類(lèi)體。當(dāng)此類(lèi)與其他類(lèi)關(guān)系不大時(shí)可以用匿名類(lèi)
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g) {
Iterator Pointit= al.iterator();//泛型指定取出元素時(shí)只能是point
while(it.hasNext()) {
Point p = it.next();//由于使用泛型這時(shí)候就不用強(qiáng)制轉(zhuǎn)換了
Color c = g.getColor();//保護(hù)原有顏色
g.setColor(Color.pink);
g.fillOval(p.x-6, p.y-6, 12, 12);
g.setColor(c);
}
}
public static void main(String []args) {
new MyFrame("點(diǎn)擊");
}
}
public?static?void?main(String[]?args){
String?新郎="新郎名字";
String?新娘="新娘名字";
System.out.println("祝新郎"+新郎+"和新娘"+新娘+"新婚幸福");
}