【JAVA语言程序设计基础篇】--图形-- 绘制封装表格类的思考
来源:互联网 发布:知君的书法 编辑:程序博客网 时间:2024/05/29 14:28
开始用的方法没有体现类的封装性 没有类的普遍性
package chapter15;import java.awt.*;import javax.swing.*;@SuppressWarnings("serial")public class exercise15_14 extends JFrame { public exercise15_14() { add(new barchart()); } public static void main(String[] args) { exercise15_14 frame = new exercise15_14(); frame.setTitle("Exercise15_14"); frame.setSize(500, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); // Center the frame frame.setVisible(true); }}@SuppressWarnings("serial")class barchart extends JPanel{public barchart() {}String[] str = {"Project -- 20%", "Quizzes -- 10%","Midtems -- 30%", "Final -- 40%"};Color[] color = {Color.red,Color.yellow, Color.green, Color.blue};int[] number = {20,10,30,40};protected void paintComponent(Graphics g) {super.paintComponent(g);int max=0;for(int i=0;i<number.length;i++){max = Math.max(max, number[i]);}g.drawLine(5, getHeight()-10, getWidth()-10, getHeight()-10);int x = 15;int y = getHeight()-10;int singleWidth = (int)((getWidth()-10-5-20)/4);int maxHeight = getHeight()-50; for(int i=0;i<4;i++){g.setColor(color[i]);int newHeight = (int)(maxHeight *number[i]/max);g.fillRect(x, y-newHeight, singleWidth, newHeight);g.setColor(Color.black);g.drawString(str[i],x, y-newHeight-10);x+=singleWidth+5;}}}
对其进行封装改编 使该表格类(barChart)具备普遍性
体现其封装性
package chapter15_编程练习题;import java.awt.*;import javax.swing.*;@SuppressWarnings("serial")public class Exercise15_14 extends JFrame { public Exercise15_14() { BarChart1 chart1 = new BarChart1(); double[] data1 = {20, 10, 30, 40}; String[] dataName1 = {"Project -- 20%", "Quizzes -- 10%", "Midtems -- 30%", "Final -- 40%"}; chart1.setData(dataName1, data1);//传进关键词 add(chart1); } public static void main(String[] args) { Exercise15_14 frame = new Exercise15_14(); frame.setTitle("Exercise15_14"); frame.setSize(500, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); // Center the frame frame.setVisible(true); }}@SuppressWarnings("serial")class BarChart1 extends JPanel {BorderLayout borderLayout1 = new BorderLayout();Color[] colors = {Color.red, Color.yellow, Color.green, Color.blue,Color.cyan, Color.magenta, Color.orange, Color.pink,Color.darkGray};String[] dataName;double[] data;public void paintComponent(Graphics g) {super.paintComponent(g);// Find the maximum value in the datadouble max = data[0];for (int i=1; i<data.length; i++)max = Math.max(max, data[i]);int barWidth = (int)((getWidth() - 10.0) / data.length - 10);//设置单个宽度int maxBarHeight = getHeight() - 30;//设置表格中最大高度g.drawLine(5, getHeight() - 10, getWidth() - 5, getHeight() - 10);//底线int x = 15;for (int i = 0; i < data.length; i++) {g.setColor(colors[i % colors.length]);int newHeight = (int)(maxBarHeight * data[i] / max);//更新每个列的高度int y = getHeight() - 10 - newHeight;g.fillRect(x, y, barWidth, newHeight);g.setColor(Color.black);g.drawString(dataName[i], x, y - 7);x += barWidth + 10;//更新x轴坐标}} public void setData(String[] dataName, double[] data) {//从类外传进值 使该类具有封装性 普遍性this.dataName = dataName;this.data = data; }}
0 0
- 【JAVA语言程序设计基础篇】--图形-- 绘制封装表格类的思考
- 【JAVA语言程序设计基础篇】--图形--练习绘制弧形
- 【JAVA语言程序设计基础篇】--图形--练习绘制多边形
- 【JAVA语言程序设计基础篇】--图形--练习绘制时钟
- 【JAVA语言程序设计基础篇】--图形-- 使用抽象方法绘制函数图形
- 【JAVA语言程序设计基础篇】--图形-- 一些总结
- 【JAVA语言程序设计基础篇】--图形--一些练习
- 【JAVA语言程序设计基础篇】--图形-- 三种时钟--增强对类的理解和应用
- 【JAVA语言程序设计基础篇】--图形用户界面基础--一些总结
- 【JAVA语言程序设计基础篇】--图形用户界面基础--练习
- 【JAVA语言程序设计基础篇】--图形用户界面基础--三种基本的布局管理器
- 【JAVA语言程序设计基础篇】--图形用户界面基础--Swing GUI组件的公共特性
- 【JAVA语言程序设计基础篇】--图形--使用FontMetrics类居中显示字符串
- 《java语言程序设计基础篇》
- java语言程序设计-基础篇
- 【JAVA语言程序设计基础篇】--图形用户界面基础--使用面板作为子容器
- Canvas基础图形的绘制
- QT基础图形的绘制
- Flex 确认提示框
- Android卫星菜单的实现
- lce的回调实现(Bidirectional Connections)双向通信
- hdu4135Co-prime-容斥原理
- LoggerFactory.getLogger(String name)用法
- 【JAVA语言程序设计基础篇】--图形-- 绘制封装表格类的思考
- Git初体验(2)-暂存区和版本库
- linux创建和删除文件
- Redis集群
- redis集群测试
- python读取二进制文件中的浮点数数组
- 游标
- 诊断数据与应用层数据不一致时的映射方法(Remapping)
- 手机标准蓝牙各类服务对应的UUID