重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//Example.java
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站建设、前进网络推广、小程序开发、前进网络营销、前进企业策划、前进品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供前进建站搭建服务,24小时服务热线:18982081108,官方网址: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] //通过类名操作类变量b,并赋值100
[代码6] //通过类名调用方法inputB()
A cat=new A();
A dog=new A();
[代码7] //cat调用方法setA(int a)将cat的成员a的值设置为200
[代码8] //cat调用方法setB(int b)将cat的成员b的值设置为400
[代码9] //dog调用方法setA(int a)将dog的成员a的值设置为300
[代码10] //dog调用方法setB(int b)将dog的成员b的值设置为800
[代码11] //cat调用方法inputA()
[代码12] //cat调用方法inputB()
[代码13] //dog调用方法inputA()
[代码14] //dog调用方法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();
}
}
有一个要说明的是,setA()与setB()的形参是浮点型的,所以如楼上所说,楼主代码7到代码10的形参设错了。但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;//新建一个Point类型的链表存储用于存储“节点”
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();//链表初始化
//窗口设置部分,不比细究
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);//添加窗口鼠标监听
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) {
//为鼠标按钮释放添加事件处理
// TODO Auto-generated method stub
int x=e.getX();//获取鼠标的x坐标
int y=e.getY();//获取鼠标的y坐标
String str=JOptionPane.showInputDialog(null, "请输入改点标记文字");
//显示对话框,根据用户输入得到标记文字
if(str!=null){//若标记文字不为空,则该点视为有效点,将该点加入链表
list.add(new Point(x,y,str));
}
repaint();//用该函数调用paint()方法,进行重构操作
this.validate();
}
public void paint(Graphics g){
if(list.isEmpty())//如果链表为空,不进行任何操作,直接返回
return;
for(Point p:list){//遍历数组,获取所有节点
g.drawOval(p.getX(), p.getY(), 2, 2);//先画点
g.drawString(p.getS(), p.getX()+5, p.getY()+6);//再标注节点的描述性文字
}
}
public static void main(String args[]){
DrawPoint p=new DrawPoint();
}
}
class Point {//节点类,包含x坐标,y坐标,描述性文字3个属性
private int x,y;//x坐标和y坐标
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五角星用代码打印出来,主要是使用system.print函数,代码如下:
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("画");
JLabel huaban=new huaban();
JPanel jPanel=new JPanel();
JLabel banjingLabel,xLabel,yLabel;
public YuanYiDong(){
banjingLabel=new JLabel("半径");
xLabel=new JLabel("X坐标");
yLabel=new JLabel("Y坐标");
this.setTitle("圆的移动");
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了一个对象并没有调用Paint()方法那为什么会画出图呢?
* Graphics这个类的对象就是一只画笔,当某容器调用paint()时就会在该容器中画图。
* 当窗口产生时本身就存在一只画笔,我们只需要拿到画笔重写Paint()便可以随心作画。
*每次需要重画的时候就会自动调用paint(Graphics g)(什么时候需要重画呢?如当窗口被覆盖又重新置顶时,当窗口最小化又最大化时等等)
*/
总结:我们想要在容器中画图时只需要做的就是: 在该容器中重写Paint() 系统会自动传给我们画笔,自动调用paint方法按照我们的意愿进行作画。
public class TestGraphics extends Frame. {
public static void main(String []args) {
new TestGraphics("画图",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,用它来容纳点,每次点击鼠标就触发了事件:往容器中添加一个点,然后立即调用repaint方法强制画出容器中所有的点来
所以我们利用容器来"装"点,然后通过iterator来遍历画出所有的点。
适配器类:使用适配器类可以只重写我们需要的方法
因为这些适配器类都已经实现了相应的接口即把所有的方法都空实现了一遍 我们只需要重写我们需要的方法即可
repaint -调用- update() - 调用 - 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(){//匿名类
@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()则是获取事件发生的x,y坐标
repaint();//每次点击鼠标触发事件时都有了新的点,所以强制要求重画,才能立刻显示出该点否则只有窗口被最小化又最大化后才能看到刚才的点
}
});
//匿名类:在参数处我们传递的是new WindowAdapter() {匿名类体} );他没有名字,我们把它当成WindowAdapter来用,为什么可以这样呢?因为语法上规定了匿名类要么是实现了前面的接口,要么是从前面的类继承,就着前面父类的名字来写类体。当此类与其他类关系不大时可以用匿名类
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g) {
Iterator Pointit= al.iterator();//泛型指定取出元素时只能是point
while(it.hasNext()) {
Point p = it.next();//由于使用泛型这时候就不用强制转换了
Color c = g.getColor();//保护原有颜色
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("点击");
}
}
public static void main(String[] args){
String 新郎="新郎名字";
String 新娘="新娘名字";
System.out.println("祝新郎"+新郎+"和新娘"+新娘+"新婚幸福");
}