package project4 ;
import java.awt.* ;
import javax.swing.JOptionPane ;
import javax.swing.UIManager ;
import javax.swing.plaf.FontUIResource ;
public class Computer {
private static String manufacturer
; private static String optical
; private static int memory;
private static int disk;
private static float retailPrice;
//no arg constructor that sets fields defaults to null, zero, or None
public Computer( ) {
manufacturer= "None" ;
model= "None" ;
memory= '0' ;
disk= '0' ;
cPU= "null" ;
optical= "null" ;
oS= "null" ;
retailPrice= '0' ;
}
//constructor that takes parameters and initializes the appropriate fields
public Computer
( String newManufacturer,
String newModel,
int newMemory,
int newDisk,
String newCPU,
String newOptical,
String newOS,
float newRetailPrice
) { manufacturer= newManufacturer;
model= newModel;
memory= newMemory;
disk= newDisk;
cPU= newCPU;
optical= newOptical;
oS= newOS;
retailPrice= newRetailPrice;
}
//setManufacturer method that accepts a String argument for the manufacture and sets the manufacturer.
public void setManufacturer
( String newManufacturer
) { manufacturer= newManufacturer;
}
//A setModel method that accepts a String argument for the model and sets the model.
public void setModel
( String newModel
) { model= newModel;
}
//A setMemory method that accepts an integer argument for the memory size and sets the memory size. If the memory size passed in is less than 2 GB, set the size to 2GB and display an error message via JOptionPane about the invalid size.
public void setMemory( int newMemory) {
if ( newMemory > 2 ) {
memory= newMemory;
}
else {
JOptionPane .
showMessageDialog ( null ,
"Invalid Memory Size Entered: " + newMemory
+ " GB \n \n Setting memory size to 2 GB" ,
"Error" ,
JOptionPane .
ERROR_MESSAGE ) ; memory= 2 ;
}
}
//A setDisk method that accepts an integer argument for the disk size and sets the disk size. If the disk size passed in is less than 250 GB, set the size to 250 GB and display an error message via JOptionPane about the invalid size.
public void setDisk( int newDisk) {
if ( newDisk > 250 ) {
disk= newDisk;
}
else {
JOptionPane .
showMessageDialog ( null ,
"Invalid Disk Size Entered: " + newDisk
+ " GB \n \n Setting disk size to 250 GB" ,
"Error" ,
JOptionPane .
ERROR_MESSAGE ) ; disk= 250 ;
}
}
//A setCPU method that accepts a String argument for the CPU type and sets the CPU type.
public void setCPU
( String newCPU
) { cPU= newCPU;
}
//A setOptical method that accepts a String argument for the optical dive type and sets the optical dive type.
public void setOptical
( String newOptical
) { optical= newOptical;
}
//A setOS method that accepts a String argument for the OS version and sets the OS version.
public void setOS
( String newOS
) { oS= newOS;
}
//A setRetailPrice method that accepts a float argument for the retail price and sets the price. If the value passed in is not equal to or greater than $299.99, display an error message via JOptionPane and set the value to $299.99
public void setRetailPrice( float newRetailPrice) {
if ( newRetailPrice > ( float ) 199.99 ) {
retailPrice= newRetailPrice;
}
else {
JOptionPane .
showMessageDialog ( null ,
"Invalid Price Entered: $" + String .
format ( "%.2f" ,newRetailPrice
) + "\n \n Setting Price to $299.99" ,
"Error" ,
JOptionPane .
ERROR_MESSAGE ) ; retailPrice= ( ( float ) 299.99 ) ;
}
}
//A getManufacturer method that returns the computers manufacturer.
public String getManufacturer
( ) { return manufacturer;
}
//A getModel method that returns the computers model number.
return model;
}
//A getMemory method that returns the computers memory size.
public int getMemory( ) {
return memory;
}
//A getDisk method that returns the computers disk size.
public int getDisk( ) {
return disk;
}
//A getCPU method that returns the computers CPU type size.
return cPU;
}
//A getOptical method that returns the computers optical drive type.
return optical;
}
//A getOS method that returns the computers OS version
return oS;
}
//A getRetailPrice method that returns the computers retail price.
public float getRetailPrice( ) {
return retailPrice;
}
//A displayComputer method that displays the computers information with labels in a JOptionPane
public static void displayComputer( ) {
JOptionPane .
showMessageDialog ( null ,
"Inventory Computer Detail \n \n " + "Manufacturer: " + manufacturer +
"\n Model Name: " + model+
"\n Memory Size: " + memory+
" GB \n Disk Size: " + disk+
" GB \n CPU Type: " + cPU+
"\n Optical Drive: " + optical+
"\n OS Version: " + oS+
"\n Retail Price: $" + String .
format ( "%.2f" ,retailPrice
) ,
}
//A toString method that creates and returns the computers information in a single string with the fields separated by colons.
return manufacturer + ":" + model + ":" + memory + ":" + disk + ":" + cPU + ":" + optical + ":" + oS;
}
}
cGFja2FnZSBwcm9qZWN0NDsKCgppbXBvcnQgamF2YS5hd3QuKjsKCmltcG9ydCBqYXZheC5zd2luZy5KT3B0aW9uUGFuZTsKaW1wb3J0IGphdmF4LnN3aW5nLlVJTWFuYWdlcjsKaW1wb3J0IGphdmF4LnN3aW5nLnBsYWYuRm9udFVJUmVzb3VyY2U7CgpwdWJsaWMgY2xhc3MgQ29tcHV0ZXIgewoJcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIG1hbnVmYWN0dXJlcjsKCXByaXZhdGUgc3RhdGljIFN0cmluZyBtb2RlbDsKCXByaXZhdGUgc3RhdGljIFN0cmluZyBjUFU7Cglwcml2YXRlIHN0YXRpYyBTdHJpbmcgb3B0aWNhbDsKCXByaXZhdGUgc3RhdGljIFN0cmluZyBvUzsKCXByaXZhdGUgc3RhdGljIGludCBtZW1vcnk7IAoJcHJpdmF0ZSBzdGF0aWMgaW50IGRpc2s7Cglwcml2YXRlIHN0YXRpYyBmbG9hdCByZXRhaWxQcmljZTsKCQoJCgkvL25vIGFyZyBjb25zdHJ1Y3RvciB0aGF0IHNldHMgZmllbGRzIGRlZmF1bHRzIHRvIG51bGwsIHplcm8sIG9yIE5vbmUKCXB1YmxpYyBDb21wdXRlcigpewoJCW1hbnVmYWN0dXJlcj0iTm9uZSI7CgkJbW9kZWw9Ik5vbmUiOwoJCW1lbW9yeT0nMCc7CgkJZGlzaz0nMCc7CgkJY1BVPSJudWxsIjsKCQlvcHRpY2FsPSJudWxsIjsKCQlvUz0ibnVsbCI7CgkJcmV0YWlsUHJpY2U9JzAnOwoJfQoJCgkvL2NvbnN0cnVjdG9yIHRoYXQgdGFrZXMgcGFyYW1ldGVycyBhbmQgaW5pdGlhbGl6ZXMgdGhlIGFwcHJvcHJpYXRlIGZpZWxkcwoJcHVibGljIENvbXB1dGVyKFN0cmluZyBuZXdNYW51ZmFjdHVyZXIsIFN0cmluZyBuZXdNb2RlbCwgaW50IG5ld01lbW9yeSwgaW50IG5ld0Rpc2ssIFN0cmluZyBuZXdDUFUsIFN0cmluZyBuZXdPcHRpY2FsLCBTdHJpbmcgbmV3T1MsIGZsb2F0IG5ld1JldGFpbFByaWNlICl7CgkJbWFudWZhY3R1cmVyPW5ld01hbnVmYWN0dXJlcjsKCQltb2RlbD1uZXdNb2RlbDsKCQltZW1vcnk9bmV3TWVtb3J5OwoJCWRpc2s9bmV3RGlzazsKCQljUFU9bmV3Q1BVOwoJCW9wdGljYWw9bmV3T3B0aWNhbDsKCQlvUz1uZXdPUzsKCQlyZXRhaWxQcmljZT1uZXdSZXRhaWxQcmljZTsKCX0KCQoJLy9zZXRNYW51ZmFjdHVyZXIgbWV0aG9kIHRoYXQgYWNjZXB0cyBhIFN0cmluZyBhcmd1bWVudCBmb3IgdGhlIG1hbnVmYWN0dXJlIGFuZCBzZXRzIHRoZSBtYW51ZmFjdHVyZXIuCglwdWJsaWMgdm9pZCBzZXRNYW51ZmFjdHVyZXIoU3RyaW5nIG5ld01hbnVmYWN0dXJlcil7CgkJbWFudWZhY3R1cmVyPSBuZXdNYW51ZmFjdHVyZXI7Cgl9CgkKCS8vQSBzZXRNb2RlbCBtZXRob2QgdGhhdCBhY2NlcHRzIGEgU3RyaW5nIGFyZ3VtZW50IGZvciB0aGUgbW9kZWwgYW5kIHNldHMgdGhlIG1vZGVsLgoJcHVibGljIHZvaWQgc2V0TW9kZWwoU3RyaW5nIG5ld01vZGVsKXsKCQltb2RlbD0gbmV3TW9kZWw7Cgl9CgkKCS8vQSBzZXRNZW1vcnkgbWV0aG9kIHRoYXQgYWNjZXB0cyBhbiBpbnRlZ2VyIGFyZ3VtZW50IGZvciB0aGUgbWVtb3J5IHNpemUgYW5kIHNldHMgdGhlIG1lbW9yeSBzaXplLiBJZiB0aGUgbWVtb3J5IHNpemUgcGFzc2VkIGluIGlzIGxlc3MgdGhhbiAyIEdCLCBzZXQgdGhlIHNpemUgdG8gMkdCIGFuZCBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UgdmlhIEpPcHRpb25QYW5lIGFib3V0IHRoZSBpbnZhbGlkIHNpemUuCglwdWJsaWMgdm9pZCBzZXRNZW1vcnkoaW50IG5ld01lbW9yeSl7CgkJaWYobmV3TWVtb3J5ID4gMil7CgkJCW1lbW9yeT1uZXdNZW1vcnk7CgkJfQoJCWVsc2V7CgkJCUpPcHRpb25QYW5lLnNob3dNZXNzYWdlRGlhbG9nKG51bGwsIkludmFsaWQgTWVtb3J5IFNpemUgRW50ZXJlZDogIituZXdNZW1vcnkrIiBHQiBcblxuU2V0dGluZyBtZW1vcnkgc2l6ZSB0byAyIEdCIiAsICJFcnJvciIsIEpPcHRpb25QYW5lLkVSUk9SX01FU1NBR0UpOwoJCQltZW1vcnk9MjsKCQl9CgkJfQoJCgkvL0Egc2V0RGlzayBtZXRob2QgdGhhdCBhY2NlcHRzIGFuIGludGVnZXIgYXJndW1lbnQgZm9yIHRoZSBkaXNrIHNpemUgYW5kIHNldHMgdGhlIGRpc2sgc2l6ZS4gSWYgdGhlIGRpc2sgc2l6ZSBwYXNzZWQgaW4gaXMgbGVzcyB0aGFuIDI1MCBHQiwgc2V0IHRoZSBzaXplIHRvIDI1MCBHQiBhbmQgZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIHZpYSBKT3B0aW9uUGFuZSBhYm91dCB0aGUgaW52YWxpZCBzaXplLgoJcHVibGljIHZvaWQgc2V0RGlzayhpbnQgbmV3RGlzayl7CgkJaWYobmV3RGlzayA+IDI1MCl7CgkJZGlzaz0gbmV3RGlzazsKCQl9CgkJZWxzZXsKCQkJSk9wdGlvblBhbmUuc2hvd01lc3NhZ2VEaWFsb2cobnVsbCwiSW52YWxpZCBEaXNrIFNpemUgRW50ZXJlZDogIituZXdEaXNrKyIgR0IgXG5cblNldHRpbmcgZGlzayBzaXplIHRvIDI1MCBHQiIgLCAiRXJyb3IiLCBKT3B0aW9uUGFuZS5FUlJPUl9NRVNTQUdFKTsKCQkJZGlzaz0gMjUwOwoJCX0KCX0KCQoJCgkvL0Egc2V0Q1BVIG1ldGhvZCB0aGF0IGFjY2VwdHMgYSBTdHJpbmcgYXJndW1lbnQgZm9yIHRoZSBDUFUgdHlwZSBhbmQgc2V0cyB0aGUgQ1BVIHR5cGUuCglwdWJsaWMgdm9pZCBzZXRDUFUoU3RyaW5nIG5ld0NQVSl7CgkJY1BVPSBuZXdDUFU7Cgl9CgkKCS8vQSBzZXRPcHRpY2FsIG1ldGhvZCB0aGF0IGFjY2VwdHMgYSBTdHJpbmcgYXJndW1lbnQgZm9yIHRoZSBvcHRpY2FsIGRpdmUgdHlwZSBhbmQgc2V0cyB0aGUgb3B0aWNhbCBkaXZlIHR5cGUuCglwdWJsaWMgdm9pZCBzZXRPcHRpY2FsKFN0cmluZyBuZXdPcHRpY2FsKXsKCQlvcHRpY2FsPW5ld09wdGljYWw7Cgl9CgkKCS8vQSBzZXRPUyBtZXRob2QgdGhhdCBhY2NlcHRzIGEgU3RyaW5nIGFyZ3VtZW50IGZvciB0aGUgT1MgdmVyc2lvbiBhbmQgc2V0cyB0aGUgT1MgdmVyc2lvbi4KCXB1YmxpYyB2b2lkIHNldE9TKFN0cmluZyBuZXdPUyl7CgkJb1M9bmV3T1M7Cgl9CgkKCS8vQSBzZXRSZXRhaWxQcmljZSBtZXRob2QgdGhhdCBhY2NlcHRzIGEgZmxvYXQgYXJndW1lbnQgZm9yIHRoZSByZXRhaWwgcHJpY2UgYW5kIHNldHMgdGhlIHByaWNlLiBJZiB0aGUgdmFsdWUgcGFzc2VkIGluIGlzIG5vdCBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gJDI5OS45OSwgZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIHZpYSBKT3B0aW9uUGFuZSBhbmQgc2V0IHRoZSB2YWx1ZSB0byAkMjk5Ljk5IAoJcHVibGljIHZvaWQgc2V0UmV0YWlsUHJpY2UoZmxvYXQgbmV3UmV0YWlsUHJpY2UpewoJCWlmKG5ld1JldGFpbFByaWNlID4gKGZsb2F0KSAxOTkuOTkpewoJCXJldGFpbFByaWNlPSBuZXdSZXRhaWxQcmljZTsKCQl9CgkJZWxzZXsKCQkJSk9wdGlvblBhbmUuc2hvd01lc3NhZ2VEaWFsb2cobnVsbCwiSW52YWxpZCBQcmljZSBFbnRlcmVkOiAkIitTdHJpbmcuZm9ybWF0KCIlLjJmIixuZXdSZXRhaWxQcmljZSkrIlxuXG5TZXR0aW5nIFByaWNlIHRvICQyOTkuOTkiICwgIkVycm9yIiwgSk9wdGlvblBhbmUuRVJST1JfTUVTU0FHRSk7CgkJCXJldGFpbFByaWNlPSAoKGZsb2F0KSAyOTkuOTkpOwoJCX0KCQkKCQl9CgkJCgkKCS8vQSBnZXRNYW51ZmFjdHVyZXIgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgY29tcHV0ZXJzIG1hbnVmYWN0dXJlci4KCXB1YmxpYyBTdHJpbmcgZ2V0TWFudWZhY3R1cmVyKCl7CgkJcmV0dXJuIG1hbnVmYWN0dXJlcjsKCX0KCQoJLy9BIGdldE1vZGVsIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGNvbXB1dGVycyBtb2RlbCBudW1iZXIuCglwdWJsaWMgU3RyaW5nIGdldE1vZGVsKCl7CgkJcmV0dXJuIG1vZGVsOwoJfQoJCgkvL0EgZ2V0TWVtb3J5IG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGNvbXB1dGVycyBtZW1vcnkgc2l6ZS4KCXB1YmxpYyBpbnQgZ2V0TWVtb3J5KCl7CgkJcmV0dXJuIG1lbW9yeTsKCX0KCQoJLy9BIGdldERpc2sgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgY29tcHV0ZXJzIGRpc2sgc2l6ZS4KCXB1YmxpYyBpbnQgZ2V0RGlzaygpewoJCXJldHVybiBkaXNrOwoJfQoJCgkvL0EgZ2V0Q1BVIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGNvbXB1dGVycyBDUFUgdHlwZSBzaXplLgoJcHVibGljIFN0cmluZyBnZXRDUFUoKXsKCQlyZXR1cm4gY1BVOwoJfQoJCgkvL0EgZ2V0T3B0aWNhbCBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBjb21wdXRlcnMgb3B0aWNhbCBkcml2ZSB0eXBlLgoJcHVibGljIFN0cmluZyBnZXRPcHRpY2FsKCl7CgkJcmV0dXJuIG9wdGljYWw7Cgl9CgkKCS8vQSBnZXRPUyBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBjb21wdXRlcnMgT1MgdmVyc2lvbgoJcHVibGljIFN0cmluZyBnZXRPUygpewoJCXJldHVybiBvUzsKCX0KCQoJLy9BIGdldFJldGFpbFByaWNlIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGNvbXB1dGVycyByZXRhaWwgcHJpY2UuCglwdWJsaWMgZmxvYXQgZ2V0UmV0YWlsUHJpY2UoKXsKCQlyZXR1cm4gcmV0YWlsUHJpY2U7Cgl9CgkKCS8vQSBkaXNwbGF5Q29tcHV0ZXIgbWV0aG9kIHRoYXQgZGlzcGxheXMgdGhlIGNvbXB1dGVycyBpbmZvcm1hdGlvbiB3aXRoIGxhYmVscyBpbiBhIEpPcHRpb25QYW5lCglwdWJsaWMgc3RhdGljIHZvaWQgZGlzcGxheUNvbXB1dGVyKCl7CgkJVUlNYW5hZ2VyLnB1dCgiT3B0aW9uUGFuZS5tZXNzYWdlRm9udCIsbmV3IEZvbnRVSVJlc291cmNlKG5ldyBGb250KCJDb3VyaWVyIE5ldyIsIEZvbnQuQk9MRCwgMTYpKSk7CgkJSk9wdGlvblBhbmUuc2hvd01lc3NhZ2VEaWFsb2cobnVsbCwgIkludmVudG9yeSBDb21wdXRlciBEZXRhaWwgXG5cbiIgKwoJCQkJCQkJCQkJICAgICJNYW51ZmFjdHVyZXI6ICAiICsgbWFudWZhY3R1cmVyICsgCgkJCQkJCQkJCQkJIlxuTW9kZWwgTmFtZTogICAgIiArIG1vZGVsKyAKCQkJCQkJCQkJCQkiXG5NZW1vcnkgU2l6ZTogICAiICttZW1vcnkrIAoJCQkJCQkJCQkJCSIgR0IgXG5EaXNrIFNpemU6ICAgICAiICtkaXNrKyAKCQkJCQkJCQkJCQkiIEdCIFxuQ1BVIFR5cGU6ICAgICAgIiArY1BVKwoJCQkJCQkJCQkJCSJcbk9wdGljYWwgRHJpdmU6ICIgKyBvcHRpY2FsKyAKCQkJCQkJCQkJCQkiXG5PUyBWZXJzaW9uOiAgICAiICsgb1MrIAoJCQkJCQkJCQkJCSJcblJldGFpbCBQcmljZTogICQiICsgU3RyaW5nLmZvcm1hdCgiJS4yZiIscmV0YWlsUHJpY2UpLCAKCQkJCQkJCQkJCQkiR2Vla2F6b2lkIEluYy4iLCBKT3B0aW9uUGFuZS5JTkZPUk1BVElPTl9NRVNTQUdFKTsKCQkKCX0KCQoJLy9BIHRvU3RyaW5nIG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW5kIHJldHVybnMgdGhlIGNvbXB1dGVycyBpbmZvcm1hdGlvbiBpbiBhIHNpbmdsZSBzdHJpbmcgd2l0aCB0aGUgZmllbGRzIHNlcGFyYXRlZCBieSBjb2xvbnMuCglwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCl7CgkJcmV0dXJuIG1hbnVmYWN0dXJlciArIjoiKyBtb2RlbCArIjoiICttZW1vcnkgKyI6IiArIGRpc2sgKyI6IiArIGNQVSArIjoiICsgb3B0aWNhbCArICI6IiArIG9TOwoJCX0KCQoJCn0=