/Users/johnr/Dropbox/johnrayworth.info/largeFilesOutsideJSR/__IB-Other/Other/IA-Solutions-2020/Nont/Product/Nont - IA/src/nont/ia/Main.java |
1
2
3
4
5
6 package nont.ia;
7
8 import java.util.ArrayList;
9
10
11 TO DO LIST:
12 Make edit thingy..
13
14 @author
15
16 public class Main extends javax.swing.JFrame {
17
18
19
20
21
22 Song[] songsArray = new Song[99];
23 private ArrayList<Chord> chordChart;
24 private int rowCount = 0;
25 private int columnCount = 0;
26 private int counter = 0;
27 private ArrayList<Chord>tempChords = new ArrayList<Chord>();
28
29
30 public Main() {
31 initComponents();
32 myInitComponents();
33 }
34
35 public void myInitComponents(){
36 for(int i = 0; i < songsArray.length; i++){
37 songsArray[i] = new Song();
38 }
39 }
40
41
1131
1191
1192 private void addSectionButtonMouseReleased(java.awt.event.MouseEvent evt) {
1193
1194 chordChartTable.setValueAt(sectionComboBox.getSelectedItem(), rowCount, 0);
1195 rowCount++;
1196 }
1197
1198
1199
1200 private void addChordsButtonMouseReleased(java.awt.event.MouseEvent evt) {
1201
1202 String baseChord = baseChordComboBox.getSelectedItem()+"";
1203 boolean minor = minorCheckBox.isSelected();
1204 String varience = varienceComboBox.getSelectedItem()+"";
1205 boolean outOfKey = outOfKeyCheckBox.isSelected();
1206 tempChords.add(new Chord(baseChord, minor, varience, outOfKey));
1207
1208 String chord1 = "";
1209 if(minorCheckBox.isSelected()){
1210 chord1 = baseChord + "m" + varience;
1211 }
1212 else{
1213 chord1 = baseChord + varience;
1214 }
1215
1216 chordChartTable.setValueAt(chord1, rowCount, columnCount);
1217 columnCount++;
1218 if (columnCount == 4){
1219 columnCount = 0;
1220 rowCount++;
1221 }
1222
1223 }
1224
1225 private void addSongButtonMouseReleased(java.awt.event.MouseEvent evt) {
1226
1227 chordChart = tempChords;
1228 tempChords = new ArrayList<Chord>();
1229 String songName = songNameTF.getText();
1230 String artistName = artistNameTF.getText();
1231 String albumName = albumNameTF.getText();
1232 String genreName = genreTF.getText();
1233 String date = (monthComboBox.getSelectedItem()+" ") + (dayComboBox.getSelectedItem()+" ") + (yearComboBox.getSelectedItem()+"");
1234
1235
1236
1237 songsArray[counter] = new Song(songName, artistName, albumName, genreName, chordChart, date);
1238
1239
1240
1241 Transpose transpose = new Transpose();
1242 songsArray[counter].setKey(transpose.analyzeKey(songsArray[counter]));
1243 songsArray[counter].setProgression(transpose.chordProgression(songsArray[counter]));
1244
1245
1246
1247
1248
1249
1250 songNameTF.setText("");
1251 artistNameTF.setText("");
1252 albumNameTF.setText("");
1253 genreTF.setText("");
1254
1255 monthComboBox.setSelectedIndex(0);
1256 dayComboBox.setSelectedIndex(0);
1257 yearComboBox.setSelectedIndex(0);
1258
1259
1260
1261 for (int row = 0; row < chordChartTable.getRowCount(); row++){
1262 for (int col = 0; col < chordChartTable.getColumnCount(); col++){
1263 chordChartTable.setValueAt("", row, col);
1264 }
1265 }
1266
1267 rowCount = 0;
1268 counter++;
1269 }
1270
1271 private void refreshDisplayTableButtonMouseReleased(java.awt.event.MouseEvent evt) {
1272
1273 refreshTable();
1274 }
1275
1276 private void refreshTable(){
1277 for (int i = 0; i < songsArray.length; i++){
1278
1279
1280
1281 if(!songsArray[i].getSongName().equals("not yet set") ){
1282 displayTable.setValueAt(songsArray[i].getDate(), i, 0);
1283 displayTable.setValueAt(songsArray[i].getArtistName(), i, 1);
1284 displayTable.setValueAt(songsArray[i].getSongName(), i, 2);
1285 displayTable.setValueAt(songsArray[i].getAlbumName(), i, 3);
1286 displayTable.setValueAt(songsArray[i].getGenreName(), i, 4);
1287 displayTable.setValueAt(songsArray[i].getKey(), i, 5);
1288 }
1289 }
1290 }
1291
1292 private void sortArtistButtonMouseReleased(java.awt.event.MouseEvent evt) {
1293
1294 Sorts sorts = new Sorts();
1295 sorts.sortByArtistName(songsArray, counter);
1296
1297 refreshTable();
1298 }
1299
1300 private void sortSongNameButtonMouseReleased(java.awt.event.MouseEvent evt) {
1301
1302 Sorts sorts = new Sorts();
1303 sorts.sortBySongName(songsArray, counter);
1304
1305 refreshTable();
1306 }
1307
1308 private void sortAlbumButtonMouseReleased(java.awt.event.MouseEvent evt) {
1309
1310 Sorts sorts = new Sorts();
1311 sorts.sortByAlbumName(songsArray, counter);
1312
1313 refreshTable();
1314 }
1315
1316 private void sortGenreButtonMouseReleased(java.awt.event.MouseEvent evt) {
1317
1318 Sorts sorts = new Sorts();
1319 sorts.sortByGenreName(songsArray, counter);
1320
1321 refreshTable();
1322 }
1323
1324 private void songNameSearchButtonMouseReleased(java.awt.event.MouseEvent evt) {
1325
1326 for (int i = 0; i < transposeKeyTable.getRowCount(); i++){
1327 for (int k = 0; k < transposeKeyTable.getColumnCount(); k++){
1328 transposeKeyTable.setValueAt("", i, k);
1329 }
1330 }
1331
1332 Song song = new Song();
1333 Transpose transpose = new Transpose();
1334
1335 for (int i = 0; i < counter; i++){
1336 if(songNameSearchTF.getText().equals(songsArray[i].getSongName())){
1337 song = songsArray[i];
1338 }
1339 }
1340
1341 song.getChangeKey().clear();
1342
1343 String key = changeKeyComboBox.getSelectedItem()+"";
1344
1345 song.setChangeKey(transpose.transposeSong(song, key));
1346
1347 int i = 0;
1348
1349 for (int row = 0; row < transposeKeyTable.getRowCount(); row++){
1350 for (int col = 0; col < transposeKeyTable.getColumnCount(); col++){
1351 if(i < song.getChangeKey().size()){
1352 transposeKeyTable.setValueAt(song.getChangeKey().get(i), row, col);
1353 i++;
1354 }
1355 }
1356 }
1357
1358 informationTextArea.setText("Original Key is: " + song.getKey() + "\nArtist name is: " + song.getArtistName() + "\nAlbum name is: " + song.getAlbumName());
1359 }
1360
1361 private void refreshAddSongButtonMouseReleased(java.awt.event.MouseEvent evt) {
1362
1363 }
1364
1365 private void chordProgressionButtonMouseReleased(java.awt.event.MouseEvent evt) {
1366
1367 for (int i = 0; i < transposeKeyTable.getRowCount(); i++){
1368 for (int k = 0; k < transposeKeyTable.getColumnCount(); k++){
1369 transposeKeyTable.setValueAt("", i, k);
1370 }
1371 }
1372
1373 Song song = new Song();
1374 Transpose transpose = new Transpose();
1375
1376 for (int i = 0; i < counter; i++){
1377 if(songNameSearchTF.getText().equals(songsArray[i].getSongName())){
1378 song = songsArray[i];
1379 }
1380 }
1381
1382 int i = 0;
1383
1384 for (int row = 0; row < transposeKeyTable.getRowCount(); row++){
1385 for (int col = 0; col < transposeKeyTable.getColumnCount(); col++){
1386 if(i < song.getProgression().size()){
1387 transposeKeyTable.setValueAt(song.getProgression().get(i), row, col);
1388 i++;
1389 }
1390 }
1391 }
1392
1393 }
1394
SAMPLE OF NETBEANS AUTO-GENERATED CODE
42
43 This method is called from within the constructor to initialize the form.
44
45
46
47 @SuppressWarnings("unchecked")
48 // <editor-fold defaultstate="collapsed" desc="Generated Code">
49 private void initComponents() {
50
51 jTabbedPane1 = new javax.swing.JTabbedPane();
52 addSongPanel = new javax.swing.JPanel();
53 baseChordComboBox = new javax.swing.JComboBox<>();
54 jLabel1 = new javax.swing.JLabel();
55 songNameTF = new javax.swing.JTextField();
56 refreshAddSongButton = new javax.swing.JButton();
57 jScrollPane1 = new javax.swing.JScrollPane();
58 chordChartTable = new javax.swing.JTable();
59 jLabel2 = new javax.swing.JLabel();
1078 copyMenuItem.setMnemonic('y');
1079 copyMenuItem.setText("Copy");
1080 editMenu.add(copyMenuItem);
1081
1082 pasteMenuItem.setMnemonic('p');
1083 pasteMenuItem.setText("Paste");
1084 editMenu.add(pasteMenuItem);
1085
1086 deleteMenuItem.setMnemonic('d');
1087 deleteMenuItem.setText("Delete");
1088 editMenu.add(deleteMenuItem);
1089
1090 menuBar.add(editMenu);
1091
1092 helpMenu.setMnemonic('h');
1093 helpMenu.setText("Help");
1094
1095 contentsMenuItem.setMnemonic('c');
1096 contentsMenuItem.setText("Contents");
1097 helpMenu.add(contentsMenuItem);
1098
1099 aboutMenuItem.setMnemonic('a');
1100 aboutMenuItem.setText("About");
1101 helpMenu.add(aboutMenuItem);
1102
1103 menuBar.add(helpMenu);
1104
1105 setJMenuBar(menuBar);
1106
1107 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
1108 getContentPane().setLayout(layout);
1109 layout.setHorizontalGroup(
1110 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1111 .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 950, javax.swing.GroupLayout.PREFERRED_SIZE)
1112 );
1113 layout.setVerticalGroup(
1114 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1115 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
1116 .addContainerGap()
1117 .addComponent(jTabbedPane1)
1118 .addContainerGap())
1119 );
1120
1121 pack();
1122 }// </editor-fold>
1123
1124 private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
1125 System.exit(0);
1126 }
1127
1128 private void baseChordComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
1129
1130 }
1395
1396 @param args
1397
1398 public static void main(String args[]) {
1399
1400
1401
1402
1403
1404 try {
1405 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
1406 if ("Nimbus".equals(info.getName())) {
1407 javax.swing.UIManager.setLookAndFeel(info.getClassName());
1408 break;
1409 }
1410 }
1411 } catch (ClassNotFoundException ex) {
1412 java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1413 } catch (InstantiationException ex) {
1414 java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1415 } catch (IllegalAccessException ex) {
1416 java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1417 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
1418 java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1419 }
1420
1421
1422
1423
1424
1425
1426 java.awt.EventQueue.invokeLater(new Runnable() {
1427 public void run() {
1428 new Main().setVisible(true);
1429 }
1430 });
1431 }
1432
1433 // Variables declaration - do not modify
1434 private javax.swing.JMenuItem aboutMenuItem;
1435 private javax.swing.JButton addChordsButton;
1436 private javax.swing.JButton addSectionButton;
1437 private javax.swing.JButton addSongButton;
1438 private javax.swing.JPanel addSongPanel;
1439 private javax.swing.JTextField albumNameTF;
1440 private javax.swing.JTextField artistNameTF;
1441 private javax.swing.JComboBox<String> baseChordComboBox;
1442 private javax.swing.JComboBox<String> changeKeyComboBox;
1443 private javax.swing.JTable chordChartTable;
1444 private javax.swing.JButton chordProgressionButton;
1445 private javax.swing.JMenuItem contentsMenuItem;
1446 private javax.swing.JMenuItem copyMenuItem;
1447 private javax.swing.JMenuItem cutMenuItem;
1448 private javax.swing.JComboBox<String> dayComboBox;
1449 private javax.swing.JMenuItem deleteMenuItem;
1450 private javax.swing.JPanel displayPanel;
1451 private javax.swing.JTable displayTable;
1452 private javax.swing.JMenu editMenu;
1453 private javax.swing.JMenuItem exitMenuItem;
1454 private javax.swing.JMenu fileMenu;
1455 private javax.swing.JTextField genreTF;
1456 private javax.swing.JMenu helpMenu;
1457 private javax.swing.JTextArea informationTextArea;
1458 private javax.swing.JLabel jLabel1;
1459 private javax.swing.JLabel jLabel10;
1460 private javax.swing.JLabel jLabel11;