前提・実現したいこと
javaでTextFieldに入力した数字の合計をLabelに表示するというプログラムを作っています。
しかし、コンパイルまではできるのですがいざ結果を表示しようとするとコマンドプロンプトに大量のプログラムが流れてき、動作しません。
どのようにすれば普通に起動するのでしょうか?
該当のソースコード
import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Keisan extends JFrame implements ActionListener { private static JTextField textField; private static JLabel arrayLabel; private static JLabel goukeiLabel; private static JLabel heikinLabel; private static JLabel messageLabel; private static String[] array; private static String[] goukei; private static String[] heikin; private static int count; @Override public void actionPerformed(ActionEvent e) { String s = ((JButton)e.getSource()).getText(); if (s=="追加") { if(count >= array.length) { messageLabel.setText("配列がいっぱいです"); }else{ array[count] = textField.getText(); messageLabel.setText("配列に"+array[count]+"を追加したよ"); count++; textField.setText(""); } String result=""; for(int i = 0;i < count; i++){ result = result+array[i]+" "; arrayLabel.setText( result ); } String c=""; for(int i = 0; i < count; i++){ int a = Integer.valueOf(array[i]); int b = Integer.valueOf(c) + a; goukeiLabel.setText( c ); } }else{ for (int i = 0; i < array.length; i++){ array[i] = ""; } count = 0; textField.setText(""); arrayLabel.setText(""); goukeiLabel.setText(""); messageLabel.setText("配列を初期化しました"); } } public static void main(String[] args) { array = new String[10]; goukei = new String[10]; heikin = new String[10]; count = 0; Keisan frame = new Keisan(); frame.setTitle("配列に追加する課題"); JPanel panelText = new JPanel(); panelText.setLayout(new GridLayout(4, 4)); JLabel label1 = new JLabel("文字列を入力してください"); textField = new JTextField(20); JLabel label2 = new JLabel("現在の配列の値"); arrayLabel = new JLabel(""); JLabel label3 = new JLabel("合計"); goukeiLabel = new JLabel(""); JLabel label4 = new JLabel("平均"); heikinLabel = new JLabel(""); panelText.add(label1); panelText.add(textField); panelText.add(label2); panelText.add(arrayLabel); panelText.add(label3); panelText.add(goukeiLabel); panelText.add(label4); panelText.add(heikinLabel); JPanel panelButton=new JPanel(); JButton buttonAdd=new JButton("追加"); JButton buttonClear=new JButton("クリア"); panelButton.add(buttonAdd); panelButton.add(buttonClear); buttonAdd.addActionListener(frame); buttonClear.addActionListener(frame); messageLabel=new JLabel(); frame.add(panelText, BorderLayout.NORTH); frame.add(panelButton, BorderLayout.CENTER); frame.add(messageLabel, BorderLayout.SOUTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(480,200); frame.setLocationByPlatform(true); frame.setVisible(true); } }
試したこと
intの部分を書き換えたりなどいろいろな方法を試したのですが、自分の力不足で分からなかったので質問をさせていただきました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー