質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

0回答

1249閲覧

JCheckBoxのチェックした数の取得

sait_you

総合スコア6

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/04/30 00:12

実現したいこと

チェックボックスのチェックした数を取得し、
そのチェックした数に応じて、それぞれ異なるアクションを起こすようにしたいです。

ソースコード

Java

1import java.awt.EventQueue; 2import java.awt.Font; 3import java.awt.event.ActionEvent; 4import java.awt.event.ActionListener; 5import java.sql.Connection; 6import java.sql.PreparedStatement; 7import java.sql.ResultSet; 8import java.sql.SQLException; 9import java.util.ArrayList; 10import java.util.Iterator; 11 12import javax.swing.ImageIcon; 13import javax.swing.JButton; 14import javax.swing.JFrame; 15import javax.swing.JLabel; 16import javax.swing.JOptionPane; 17import javax.swing.JPanel; 18import javax.swing.JScrollPane; 19import javax.swing.JTable; 20import javax.swing.JTextField; 21import javax.swing.ListSelectionModel; 22import javax.swing.table.DefaultTableModel; 23 24public class LentHistory extends JFrame { 25 26 private JPanel contentPane; 27 private JTextFg LogIDField; 28 private JFrame frame; 29 private JTable table; 30 private DefaultTableModel tableModel; 31 private JScrollPane scrollPane = null; 32 private JTextField textField; 33 34 /** 35 * Launch the application. 36 */ 37 public static void main(String[] args) { 38 EventQueue.invokeLater(new Runnable() { 39 public void run() { 40 try { 41 LentHistory window = new LentHistory(); 42 window.frame.setVisible(true); 43 } catch (Exception e) { 44 e.printStackTrace(); 45 } 46 } 47 }); 48 } 49 50 /** 51 * Create the frame. 52 */ 53 public LentHistory() { 54 initialize(); 55 } 56 57 /** 58 * Initialize the contents of the frame. 59 */ 60 private void initialize() { 61 frame = new JFrame(); 62 frame.setBounds(100, 100, 760, 425); 63 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 64 frame.getContentPane().setLayout(null); 65 66     scrollPane = new JScrollPane(); 67 scrollPane.setBounds(12, 128, 602, 248); 68 frame.getContentPane().add(scrollPane); 69 70     table = new JTable(); 71   table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 72 table.setColumnSelectionAllowed(false); 73 table.setRowSelectionAllowed(true); 74 scrollPane.setViewportView(table); 75 76 //ボタン名 77 JButton btnNewButton_2 = new JButton("アイテム交換"); 78 JButton btnNewButton_3 = new JButton("表示"); 79 80 //ボタン位置 81 btnNewButton_2.setBounds(626, 183, 106, 50); 82 btnNewButton_3.setBounds(626, 253, 106, 50); 83 84 //アイテム交換ボタン 85 btnNewButton_2.addActionListener(new ActionListener() { 86 87 @Override 88 public void actionPerformed(ActionEvent e) { 89 // TODO 自動生成されたメソッド・スタブ 90 91 Connection con = null; 92 PreparedStatement pstmt = null; 93 ResultSet rs = null; 94 95 try { 96 //データベースに接続 97 con = DBconect.getConnection(); 98 //SQL文作成 99 String mySql = "select * from book.tbl_history where status = 'true' "; 100 //ステートメントオブジェクトを作成 101 pstmt = con.prepareStatement(mySql); 102 rs = pstmt.executeQuery(mySql); 103 rs.last(); 104 int count = rs.getRow(); //count変数に件数入力 105 rs.beforeFirst(); 106 107 if(2 <= count && count < 4) { 108 //SQl文作成 109 mySql = "insert into book.tbl_coupon(LogID, item) values('" + LogIDField.getText() 110 + "', '木の枝')"; 111 //ステートメントオブジェクトを作成 112 pstmt.executeUpdate(mySql); 113 114 //パネル表示 115 JOptionPane.showMessageDialog(frame, "木の枝を獲得しました。"); 116 String mySql1 = "deleate from book.tbl_lent limit 3"; 117 pstmt.executeUpdate(mySql1); 118 return; 119 }else if(5 <= count && count < 9) { 120 //SQl文作成 121 mySql = "insert into book.tbl_coupon(LogID, item) values('" + LogIDField.getText() 122 + "', '木刀')"; 123 //ステートメントオブジェクトを作成 124 pstmt.executeUpdate(mySql); 125 //パネル表示 126 JOptionPane.showMessageDialog(frame, "木刀を獲得しました。"); 127 String mySql1 = "deleate from book.tbl_lent limit 5"; 128 pstmt.executeUpdate(mySql1); 129 return; 130 }else if(10 <= count && count < 14) { 131 //SQl文作成 132 mySql = "insert into book.tbl_coupon(LogID, item) values('" + LogIDField.getText() 133 + "', 'さびた刀')"; 134 //ステートメントオブジェクトを作成 135 pstmt.executeUpdate(mySql); 136 //パネル表示 137 JOptionPane.showMessageDialog(frame, "さびた刀を獲得しました。"); 138 String mySql1 = "deleate from book.tbl_lent limit 10"; 139 pstmt.executeUpdate(mySql1); 140 return; 141 }else if(15 <= count && count < 29) { 142 //SQl文作成 143 mySql = "insert into book.tbl_coupon(LogID, item) values('" + LogIDField.getText() 144 + "', '大剣')"; 145 //ステートメントオブジェクトを作成 146 pstmt.executeUpdate(mySql); 147 //パネル表示 148 JOptionPane.showMessageDialog(frame, "大剣を獲得しました。"); 149 String mySql1 = "deleate from book.tbl_lent limit 30"; 150 pstmt.executeUpdate(mySql1); 151 return; 152 }else if(30 <= count && count < 49) { 153 //SQl文作成 154 mySql = "insert into book.tbl_coupon(LogID, item) values('" + LogIDField.getText() 155 + "', '銃')"; 156 //ステートメントオブジェクトを作成 157 pstmt.executeUpdate(mySql); 158 //パネル表示 159 JOptionPane.showMessageDialog(frame, "銃を獲得しました。"); 160 String mySql1 = "deleate from book.tbl_lent limit 50"; 161 pstmt.executeUpdate(mySql1); 162 return; 163 }else if(50 <= count) { 164 //SQl文作成 165 mySql = "insert into book.tbl_coupon(LogID, item) values('" + LogIDField.getText() 166 + "', '勇者の剣')"; 167 //ステートメントオブジェクトを作成 168 pstmt.executeUpdate(mySql); 169 //パネル表示 170 JOptionPane.showMessageDialog(frame, "勇者の剣を獲得しました。"); 171 //SQL文作成 172 String mySql1 = "deleate from book.tbl_lent limit 100"; 173 pstmt.executeUpdate(mySql1); 174 return; 175 }else { 176 JOptionPane.showMessageDialog(frame, "アイテム交換に必要な数のデータが存在しません。"); 177 } 178 179 //SQL文作成 180 String Sql = "select * from book.tbl_coupon"; 181 //SQLの実行 182 ResultSet rs1 = pstmt.executeQuery(Sql); 183 184 185 } catch (Exception ex) { 186 ex.printStackTrace(); 187 } finally { 188 //各オブジェクトを解放する 189 if (rs != null) { 190 try { 191 rs.close(); 192 } catch (Exception ex) { 193 System.out.println(ex.getMessage()); 194 } 195 } 196 if (pstmt != null) { 197 try { 198 pstmt.close(); 199 } catch (Exception ex) { 200 System.out.println(ex.getMessage()); 201 } 202 } 203 if (con != null) { 204 try { 205 con.close(); 206 } catch (Exception ex) { 207 System.out.println(ex.getMessage()); 208 } 209 } 210 } 211 212 } 213 214 }); 215 frame.getContentPane().setLayout(null); 216 frame.getContentPane().add(btnNewButton_2); 217 218 //表示ボタン 219 btnNewButton_3.addActionListener(new ActionListener() { 220 221 @Override 222 public void actionPerformed(ActionEvent e) { 223 // TODO 自動生成されたメソッド・スタブ 224 225 Connection con = null; 226 PreparedStatement pstmt = null; 227 ResultSet rs = null; 228 229 try { 230 //データベースに接続 231 con = DBconect.getConnection(); 232 233 //表示データ存在チェック 234 int errorCode = Validate.ckExistsData(con); 235 if(errorCode != Validate.getErrCode0()) { 236 //エラーダイアログ表示 237 JOptionPane.showMessageDialog(frame, Validate.getErrMsg(errorCode)); 238 return; 239 } 240 241 //SQL文作成 242 String mySql = "select * from book.tbl_history"; 243 //ステートメントオブジェクトを作成 244 pstmt = con.prepareStatement(mySql); 245 //検索するSQL実行 246 rs = pstmt.executeQuery(); 247 248 //表のヘッダー部を作成 249 tableModel = new DefaultTableModel() { 250 251 public Class<?> getColumnClass(int column) { 252 switch (column) { 253 case 0: 254 return String.class; 255 case 1: 256 return String.class; 257 case 2: 258 return String.class; 259 case 3: 260 return String.class; 261 case 4: 262 return Boolean.class; 263 default: 264 return String.class; 265 } 266 } 267 }; 268 table.setModel(tableModel); 269 270 tableModel.addColumn("ログインID"); 271 tableModel.addColumn("ISBN"); 272 tableModel.addColumn("タイトル"); 273 tableModel.addColumn("作者"); 274 tableModel.addColumn("ステータス"); 275 276 rs.last(); 277 278 tableModel.setRowCount(rs.getRow()); 279 280 rs.beforeFirst(); 281 System.out.println("表件数:" + tableModel.getRowCount() + "\t"); 282 283 int i = 0; 284 285 while(rs.next()) { 286 tableModel.setValueAt(rs.getString("LogID"), i, 0); 287 tableModel.setValueAt(rs.getString("ISBN"), i, 1); 288 tableModel.setValueAt(rs.getString("title"), i, 2); 289 tableModel.setValueAt(rs.getString("author"), i, 3); 290 tableModel.setValueAt(false, 1, 4); 291 System.out.println("行数:" + i + "\t"); 292 i++; 293 } 294 frame.getContentPane().add(scrollPane); 295 table.setModel(tableModel); 296 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 297 table.setColumnSelectionAllowed(false); 298 table.setRowSelectionAllowed(true); 299 table.getColumnModel().getColumn(0).setMinWidth(150); 300 table.getColumnModel().getColumn(1).setPreferredWidth(150); 301 table.getColumnModel().getColumn(1).setMinWidth(1); 302 scrollPane.setViewportView(table); 303 scrollPane.getIgnoreRepaint(); 304 305 306 307 308 }catch(Exception ex) { 309 System.out.println("例外発生:" + ex.toString()); 310 }finally { 311 try { 312 //実行結果をクローズ 313 if(rs != null) { 314 rs.close(); 315 } 316 //ステートメントをクローズ 317 if(pstmt != null) { 318 pstmt.close(); 319 } 320 //接続をクローズ 321 if(con != null) { 322 con.close(); 323 } 324 }catch(SQLException se) { 325 //何もしない 326 } 327 } 328 329 } 330 331 }); 332 frame.getContentPane().setLayout(null); 333 frame.getContentPane().add(btnNewButton_3); 334 } 335}

補足情報

チェックボックスは初期はfalse。登録されているデータの中で交換したいアイテムに応じて自身でチェックを行い、そのチェックした数に対するアイテムを交換を行います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問