teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

Java 8向けサンプルを追加

2016/07/15 08:32

投稿

退会済みユーザー
answer CHANGED
@@ -43,4 +43,38 @@
43
43
  getContentPane().add(keyPanel);
44
44
  }
45
45
  }
46
+ ```
47
+
48
+ SwingSampleクラスをJPanelの派生クラスに変更し、Java 8の環境であれば、次のようなコードになります。
49
+
50
+ ```Java
51
+ public class SwingSample extends JPanel {
52
+ private JTextField tfName = new JTextField();
53
+ private String name;
54
+
55
+ public static void main(String[] args){
56
+ final JFrame f = new JFrame("SwingSample");
57
+ f.getContentPane().add(new SwingSample());
58
+ f.setSize(400, 400);
59
+ f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
60
+ SwingUtilities.invokeLater(()->f.setVisible(true));
61
+ }
62
+
63
+ SwingSample(){
64
+ final JButton btn1 = new JButton("Save");
65
+ final JButton btn2 = new JButton("Restore");
66
+
67
+ setLayout(new GridLayout(3, 1));
68
+ add(tfName);
69
+ add(btn1);
70
+ add(btn2);
71
+
72
+ btn1.addActionListener((e)->{
73
+ name = tfName.getText();
74
+ tfName.setText("");
75
+ });
76
+
77
+ btn2.addActionListener((e)->tfName.setText(name));
78
+ }
79
+ }
46
80
  ```