以前質問した、パスワードを生成するプログラムは完成したのですが、それをボタンを押したらテキストとして出力するようにしたくてswingに手を出しました。
ボタンを押したらf[]のなかの8ケタが出力されればいいのですがどのようなコードにすればいいのでしょうか?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import javax.swing.border.LineBorder;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.Color;
import java.awt.Dimension;
import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
class JSample11_1 extends JFrame implements ActionListener, MouseListener{
JButton button;
public static void main(String args[]){
JSample11_1 frame = new JSample11_1("MyTitle");
frame.setVisible(true);
char a[]=new char[10]; char b[]=new char[26]; char c[]=new char[26]; char d[]=new char[62]; char f[]=new char[8]; int t=0,u=0,v=0,z=0,result=0; int ran=3; for(int i=0x30; i<0x3a; i++){ a[t]=(char)i; t++; } for(int j=0x41; j<0x5b; j++){ b[u]=(char)j; u++; } for(int k=0x61; k<0x7b; k++){ c[v]=(char)k; v++; } for(int l=0x30; l<0x3a; l++){ d[z]=(char)l; z++; } for(int l=0x41; l<0x5b; l++){ d[z]=(char)l; z++; } for(int l=0x61; l<0x7b; l++){ d[z]=(char)l; z++; } Random rand = new Random(); int num1 = rand.nextInt(10); int numA = rand.nextInt(26); int numa = rand.nextInt(26); f[0]=a[num1]; f[1]=b[numA]; f[2]=c[numa]; for(int n=0; n<=4;n++){ int num = rand.nextInt(62); f[ran]=d[num]; ran++; } shuffle(f); } public static void shuffle(char[] array) { if (array.length <= 1) { return; } Random rnd = ThreadLocalRandom.current(); for (int i = array.length - 1; i > 0; i--) { int index = rnd.nextInt(i + 1); char tmp = array[index]; array[index] = array[i]; array[i] = tmp; } ↓ここまではあっていると思います
} ---------------------------------------------------------
JSample11_1(String title){
setTitle(title); setBounds(100, 100, 600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); button = new JButton("OK"); button.addActionListener(this); button.setPreferredSize(new Dimension(100, 50)); JLabel label = new JLabel("Click"); label.setHorizontalAlignment(JLabel.CENTER); label.setBorder(new LineBorder(Color.BLUE, 1, true)); label.addMouseListener(this); label.setPreferredSize(new Dimension(100, 50)); JPanel p = new JPanel(); p.add(button); p.add(label); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e){
for(int m=0; m<=7;m++){
System.out.print(f[m]);
}
}
public void mouseClicked(MouseEvent e){
button.doClick(500);
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。