少々愚直すぎて申し訳ない
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
/**
* キーボードから数値をにゅうりょくし配列変数のじを指定することで、配列要素の値を標示する.
*/
class Hoge extends JFrame implements DocumentListener {
private JTextField no;
private JLabel disp;
private int[] numbersData;
public Hoge() {
super("Hoge");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
no = new JTextField(20);
no.getDocument().addDocumentListener(this);
disp = new JLabel("番号を打ってください", SwingConstants.CENTER);
JPanel p = new JPanel();
p.add(new JLabel("値> "));
p.add(no);
getContentPane().add(p, BorderLayout.NORTH);
getContentPane().add(disp, BorderLayout.CENTER);
pack();
numbersData = new int[]{ 1, 2, 3, 4, 16, 32, 64, 128, 256, 512 };
}
protected void displayValue(Document doc) {
try {
int length = doc.getLength();
String s = doc.getText(0, length);
int index = Integer.parseInt(s);
String val = Integer.toString(this.numbersData[index]);
String text = String.format("%d番目の値は%s", index, val);
this.disp.setText(text);
} catch (BadLocationException | NumberFormatException | IndexOutOfBoundsException e) {
this.disp.setText("値がありません");
}
}
@Override
public void removeUpdate(DocumentEvent ev) {
displayValue(ev.getDocument());
}
@Override
public void insertUpdate(DocumentEvent ev) {
displayValue(ev.getDocument());
}
@Override
public void changedUpdate(DocumentEvent ev) {
displayValue(ev.getDocument());
}
public static void main(String args[]) {
new Hoge().setVisible(true);
}
}
補足
だからその書き方がわかんないです。どうかコードを書いてください。初心者ですいません