昨日見た夢を教えて下さい

javaを勉強中のものです。
できれば家計簿を作りたいと思っています。
パスワード認証画面を作るのと表を作るプログラムはそれぞれ書けたのですが、
これらをどう関係させればよいのかがわかりません。
パスワードを認証してOKを押したら家計簿の表が表示されるのが理想です。
コードを書いてみたのですが
"actionPerformed(ActionEvent)はすでにクラスKakeibo3で定義されています"と出てしまいます。
ちなみにプログラミングにはjava8、ATOMを使用しています。
よろしくお願いいたします。
以下コードです

import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;

class Kakeibo3 extends JFrame implements ActionListener{
JPasswordField pass;

public static void main(String[] args){
Kakeibo3 frame = new Kakeibo3("家計簿");
frame.setVisible(true);
}
Kakeibo3(String title){
setTitle(title);
setBounds(100,100,500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel p = new JPanel();

JLabel label = new JLabel("パスワード");
pass = new JPasswordField(10);

JButton button = new JButton("確認");
button.addActionListener(this);

p.add(label);
p.add(pass);
p.add(button);

Container contentPane = getContentPane();
contentPane.add(p,BorderLayout.CENTER);
}

public void actionPerformed(ActionEvent e){
String password = new String(pass.getPassword());

if(password.equals("tan01200709")){
JLabel label = new JLabel("認証に成功しました");
JOptionPane.showMessageDialog(this,label,"成功",JOptionPane.INFORMATION_MESSAGE);
}else{
JLabel label = new JLabel("パスワードが違います");
JOptionPane.showMessageDialog(this,label,"失敗",JOptionPane.ERROR_MESSAGE);
pass.setText("");
}
}

private JTable table;
private JScrollPane sp;
private DefaultTableModel model;

public void actionPerformed(ActionEvent e){
String[] header = {"収入","支出","残高"};
model = new DefaultTableModel(header,10);

table = new JTable(model);
sp = new JScrollPane(table);
}
}

A 回答 (1件)

import java.awt.BorderLayout;


import java.awt.Container;
import java.awt.Dimension;
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.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

class Kakeibo3 extends JFrame implements ActionListener{
JPasswordField pass;
JLabel label;
JPanel panel;
JButton button;

public static void main(String[] args){
Kakeibo3 frame = new Kakeibo3("家計簿");
frame.setVisible(true);
}

Kakeibo3(String title){
setTitle(title);
setBounds(100,100,500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

panel = new JPanel();

label = new JLabel("パスワード");
pass = new JPasswordField(10);

button = new JButton("確認");
button.addActionListener(this);

panel.add(label);
panel.add(pass);
panel.add(button);

Container contentPane = getContentPane();
contentPane.add(panel,BorderLayout.CENTER);
}

public void actionPerformed(ActionEvent e){
String password = new String(pass.getPassword());

if(password.equals("tan01200709")){
JLabel label = new JLabel("認証に成功しました");
JOptionPane.showMessageDialog(this,label,"成功",JOptionPane.INFORMATION_MESSAGE);
System.out.println("認証に成功");
displayTable();
}else{
JLabel label = new JLabel("パスワードが違います");
JOptionPane.showMessageDialog(this,label,"失敗",JOptionPane.ERROR_MESSAGE);
pass.setText("");
}

}

private JTable table;
private JScrollPane sp;
private DefaultTableModel model;
Object[][] data = {
{"1", "10", "100"},
{"2", "20", "200"},
{"3", "30", "300"},};

public void displayTable(){

panel.removeAll();

String[] header = {"収入","支出","残高"};
model = new DefaultTableModel(data, header);

table = new JTable(model);
sp = new JScrollPane(table);
sp.setSize(new Dimension(450, 450));
panel.add(sp);
panel.repaint();
// 動的にGUIコンポーネントを「削除、追加」した場合は「repaint()」して下さい。
}
}
    • good
    • 0
この回答へのお礼

具体例ありがとうございます!
参考にさせていただきます!

お礼日時:2018/11/11 01:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報