微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > Eclipse >

求问两个frame之间数据传递和字符串整形的转换问

时间:2014-04-11 07:59  浏览:努力统计中...
我现在想实现一个frame提示用户输入,输入后回车出现另一个frame经过一定计算画出条形图来。但现在代码没出错,跑出来就一堆错,代码如下是两段: importjava.awt.FlowLayout; importjava.awt
我现在想实现一个frame提示用户输入,输入后回车出现另一个frame经过一定计算画出条形图来。但现在代码没出错,跑出来就一堆错,代码如下是两段:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Enter extends JFrame implements ActionListener {

JLabel label = new JLabel("Enter an integer");
JTextField text = new JTextField(10);

public Enter() {
setLayout(new FlowLayout());
add(label);
add(text);
text.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
String s = text.getText();
BarGraph win = new BarGraph(s);
BarGraph frame1 = new BarGraph();
frame1.setTitle("Bar Graph");
frame1.setSize(1500, 750);
frame1.setLocationRelativeTo(null); // Center the frame
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);
}

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Enter frame = new Enter();
frame.setTitle("Enter");
frame.setSize(965, 500);
frame.setLocationRelativeTo(null); // Center the frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

}
----------------------------------------------------
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class BarGraph extends JFrame {
String s = "";

public BarGraph() {
add(new Panel());
}

public BarGraph(String in) {
this.s = in;
}

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
BarGraph frame1 = new BarGraph();
frame1.setTitle("Bar Graph");
frame1.setSize(1500, 750);
frame1.setLocationRelativeTo(null); // Center the frame
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);
}

class Panel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int num = Integer.parseInt(s);
int[] array = new int[100];
int[] count = new int[100];
int d = 2;
int i = 0;
int j = 0;
int c = 0;
while (d <= num) {
if (num % d == 0) {
array[i] = d;
count[j]++;
num /= d;
i++;
c++;
} else {
d++;
j++;
}
}
double p2 = 100 * count[0] / c;
double p3 = 100 * count[1] / c;
double p5 = 100 * count[3] / c;
double p7 = 100 * count[5] / c;
double p11 = 100 * count[9] / c;
g.fillRect(0, 700 - 500 * count[0] / c, 150, 500 * count[0] / c);
g.fillRect(300, 700 - 500 * count[1] / c, 150, 500 * count[1] / c);
g.fillRect(600, 700 - 500 * count[3] / c, 150, 700 - 500 * count[3]
/ c);
g.fillRect(900, 700 - 500 * count[5] / c, 150, 700 - 500 * count[5]
/ c);
g.fillRect(1200, 700 - 500 * count[9] / c, 150, 700 - 500
* count[9] / c);
g.drawString("It has " + c + " factors", 0, 50);
g.drawString("the percentage of factor 2", 0, 100);
g.drawString("is " + p2 + "% " + count[0] + " in total", 0, 150);
g.drawString("the percentage of factor 3", 300, 100);
g.drawString("is " + p3 + "% " + count[1] + " in total", 300, 150);
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线------