MyFrame.java
public class MyFrame extends JFrame implements ActionListener{
MyPanel jp_center;
JTextField jtf;
public MyFrame() {
JPanel jp_north = new JPanel();
jp_north.setLayout(new GridLayout(1, 3));
JLabel jl = new JLabel("半径:", JLabel.RIGHT);
jtf = new JTextField();
JButton jb = new JButton("画");
jb.addActionListener(this);
jp_north.add(jl);
jp_north.add(jtf);
jp_north.add(jb);
jp_center = new MyPanel(0);
this.setLayout(new BorderLayout());
this.add(jp_north, BorderLayout.NORTH);
this.add(jp_center, BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setSize(370, 280);
this.setResizable(false);
this.setLocationRelativeTo(null);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jp_center.setR(Integer.valueOf(jtf.getText()));
jp_center.repaint();
}
}
===============================
MyPanel
public class MyPanel extends Panel {
private int r;
public MyPanel(int r){
this.r = r;
this.setBackground(Color.green);
}
public void paint(Graphics g){
g.setColor(Color.red);
int h = this.getHeight();
int w = this.getWidth();
g.fillOval(w/2 - r, h/2 - r, 2 * r, 2 * r);
}
public int getR() {
return r;
}
public void setR(int r) {
this.r = r;
}
}
============================================
Test.java
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
}
从零开始仿写一个抖音App——Apt代码生成技术、gradle插件开发与protocol协议
然后就是 groovy 和 java 可以混编(圆形的是 java 文件,方形的是 groovy 文件),所以图13中的 gradle 配置里面添加了 groovy 和 java 插件来分别编译两种...接下来就是依葫芦画瓢,不断的按照 fetcher 接口的定义生成方法。 5. 我们可以发现使用 squareup.javapoet 库生成代码就类似搭积木一样,给一个个方法添加...
Java编程思想第五版(On Java8)(一)-什么是对象
每个形状可以绘制、擦除、移动、着色等。 由此,可以派生出(继承出)具体类型的形状——圆形、正方形、三角形等等——每个形状可以具有附加的特征和行为...这个答案在 java 中是肯定的(实际上,除 c++ 以外的几乎所有oop语言中也是这样)。 在 java 中,这个最终基类的名字就是 object。 java 的单继承结构有...
Java多态性理解
例如,多态对圆circle类工作,对其他任何圆形几何体,如圆环,也同样工作。 2.可扩充性(extensibility)。 多态对代码具有可扩充性。 增加新的子类不影响...java中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。 从一定角度来看,封装和继承几乎都是为多态而准备的。 这是我们最后一个概念,