Initial upload
Upload my classwork to Github.
BIN
SNHUTravel/TextAndIcon.class
Normal file
BIN
SNHUTravel/TextAndIconListCellRenderer.class
Normal file
BIN
SNHUTravel/TopDestinationList.jar
Normal file
BIN
SNHUTravel/TopDestinationListFrame.class
Normal file
BIN
SNHUTravel/TopFiveDestinationList$1.class
Normal file
BIN
SNHUTravel/TopFiveDestinationList.class
Normal file
BIN
SNHUTravel/bin/TextAndIcon.class
Normal file
BIN
SNHUTravel/bin/TextAndIconListCellRenderer.class
Normal file
BIN
SNHUTravel/bin/TopDestinationListFrame.class
Normal file
BIN
SNHUTravel/bin/TopFiveDestinationList$1.class
Normal file
BIN
SNHUTravel/bin/TopFiveDestinationList.class
Normal file
BIN
SNHUTravel/bin/resources/glacier.jpg
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
SNHUTravel/bin/resources/grandcanyon.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
SNHUTravel/bin/resources/honolulu.jpg
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
SNHUTravel/bin/resources/maui.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
SNHUTravel/bin/resources/yellowstone.jpg
Normal file
After Width: | Height: | Size: 65 KiB |
170
SNHUTravel/src/TopFiveDestinationList.java
Normal file
|
@ -0,0 +1,170 @@
|
|||
import java.awt.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.*;
|
||||
|
||||
public class TopFiveDestinationList {
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
TopDestinationListFrame topDestinationListFrame = new TopDestinationListFrame();
|
||||
topDestinationListFrame.setTitle("Top 5 Destination List");
|
||||
topDestinationListFrame.setVisible(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class TopDestinationListFrame extends JFrame {
|
||||
private DefaultListModel listModel;
|
||||
|
||||
public TopDestinationListFrame() {
|
||||
super("Top Five Destination List");
|
||||
|
||||
|
||||
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
|
||||
setSize(900, 750);
|
||||
|
||||
listModel = new DefaultListModel();
|
||||
|
||||
// show the top 5 destinations with a short description and a picture
|
||||
// image dimensions 193 x 145
|
||||
// last modified 2023/05/21
|
||||
|
||||
// File:Mountain Goat at Hidden Lake.jpg. (2022, March 17). Wikimedia Commons. Retrieved 17:57, May 21, 2023 from https://commons.wikimedia.org/w/index.php?title=File:Mountain_Goat_at_Hidden_Lake.jpg&oldid=640186430.
|
||||
// Resized and renamed to glacier.jpg
|
||||
addDestinationNameAndPicture("1. Glacier National Park - All of Nature under the Big Sky", new ImageIcon(getClass().getResource("/resources/glacier.jpg")));
|
||||
|
||||
// File:Keanae Road to Hana. Maui. (11106935413).jpg. (2023, May 8). Wikimedia Commons. Retrieved 17:58, May 21, 2023 from https://commons.wikimedia.org/w/index.php?title=File:Keanae_Road_to_Hana._Maui._(11106935413).jpg&oldid=760888382.
|
||||
// Resized and renamed to maui.jpg
|
||||
addDestinationNameAndPicture("2. Maui - Paradise in the Pacific", new ImageIcon(getClass().getResource("/resources/maui.jpg")));
|
||||
|
||||
// File:Grand Canyon Hopi Point with rainbow 2013.jpg. (2023, April 11). Wikimedia Commons. Retrieved 17:59, May 21, 2023 from https://commons.wikimedia.org/w/index.php?title=File:Grand_Canyon_Hopi_Point_with_rainbow_2013.jpg&oldid=749321666.
|
||||
// Resized and renamed to grandcanyon.jpg
|
||||
addDestinationNameAndPicture("3. Grand Canyon National Park - Natural Wonder of the World", new ImageIcon(getClass().getResource("/resources/grandcanyon.jpg")));
|
||||
|
||||
// File:Sand Island Beach, Oahu, Hawaii.jpg. (2022, March 27). Wikimedia Commons. Retrieved 17:59, May 21, 2023 from https://commons.wikimedia.org/w/index.php?title=File:Sand_Island_Beach,_Oahu,_Hawaii.jpg&oldid=644361941.
|
||||
// Resized and renamed to honolulu.jpg
|
||||
addDestinationNameAndPicture("4. Oahu - Tropical Bliss and Cultural Delights", new ImageIcon(getClass().getResource("/resources/honolulu.jpg")));
|
||||
|
||||
// File:Yellowstone national park waterfall.jpg. (2022, May 26). Wikimedia Commons. Retrieved 18:00, May 21, 2023 from https://commons.wikimedia.org/w/index.php?title=File:Yellowstone_national_park_waterfall.jpg&oldid=659127234.
|
||||
// Resized and renamed to yellowstone.jpg
|
||||
addDestinationNameAndPicture("5. Yellowstone National Park - Geothermal Marvel and Wildlife Haven", new ImageIcon(getClass().getResource("/resources/yellowstone.jpg")));
|
||||
|
||||
JList list = new JList(listModel);
|
||||
JScrollPane scrollPane = new JScrollPane(list);
|
||||
|
||||
// reduce padding from 2 to 1 for better looking pictures
|
||||
TextAndIconListCellRenderer renderer = new TextAndIconListCellRenderer(1);
|
||||
|
||||
list.setCellRenderer(renderer);
|
||||
|
||||
// add developer attribution; added 2023/05/21
|
||||
JLabel nameLabel = new JLabel("Developer: Cody Cook");
|
||||
getContentPane().add(nameLabel, BorderLayout.NORTH);
|
||||
|
||||
// show scrollPane
|
||||
getContentPane().add(scrollPane, BorderLayout.CENTER);
|
||||
|
||||
// change scrollPane colors; added 2023/05/21
|
||||
scrollPane.getVerticalScrollBar().setBackground(Color.BLUE);
|
||||
}
|
||||
|
||||
private void addDestinationNameAndPicture(String text, Icon icon) {
|
||||
TextAndIcon tai = new TextAndIcon(text, icon);
|
||||
listModel.addElement(tai);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class TextAndIcon {
|
||||
private String text;
|
||||
private Icon icon;
|
||||
|
||||
public TextAndIcon(String text, Icon icon) {
|
||||
this.text = text;
|
||||
this.icon = icon;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public Icon getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public void setIcon(Icon icon) {
|
||||
this.icon = icon;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class TextAndIconListCellRenderer extends JLabel implements ListCellRenderer {
|
||||
private static final Border NO_FOCUS_BORDER = new EmptyBorder(1, 1, 1, 1);
|
||||
|
||||
private Border insideBorder;
|
||||
|
||||
public TextAndIconListCellRenderer() {
|
||||
this(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
public TextAndIconListCellRenderer(int padding) {
|
||||
this(padding, padding, padding, padding);
|
||||
}
|
||||
|
||||
public TextAndIconListCellRenderer(int topPadding, int rightPadding, int bottomPadding, int leftPadding) {
|
||||
insideBorder = BorderFactory.createEmptyBorder(topPadding, leftPadding, bottomPadding, rightPadding);
|
||||
setOpaque(true);
|
||||
}
|
||||
|
||||
public Component getListCellRendererComponent(JList list, Object value,
|
||||
int index, boolean isSelected, boolean hasFocus) {
|
||||
// The object from the combo box model MUST be a TextAndIcon.
|
||||
TextAndIcon tai = (TextAndIcon) value;
|
||||
|
||||
// Sets text and icon on 'this' JLabel.
|
||||
setText(tai.getText());
|
||||
setIcon(tai.getIcon());
|
||||
|
||||
// Adjust color scheme. Set unselected option to gray to make image pop more. On selection, darken text.
|
||||
if (isSelected) {
|
||||
setBackground(list.getSelectionBackground());
|
||||
setForeground(Color.BLACK);
|
||||
} else {
|
||||
setBackground(list.getBackground());
|
||||
setForeground(Color.GRAY);
|
||||
}
|
||||
|
||||
Border outsideBorder;
|
||||
|
||||
if (hasFocus) {
|
||||
outsideBorder = UIManager.getBorder("List.focusCellHighlightBorder");
|
||||
} else {
|
||||
outsideBorder = NO_FOCUS_BORDER;
|
||||
}
|
||||
|
||||
setBorder(BorderFactory.createCompoundBorder(outsideBorder, insideBorder));
|
||||
setComponentOrientation(list.getComponentOrientation());
|
||||
setEnabled(list.isEnabled());
|
||||
setFont(list.getFont());
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
// The following methods are overridden to be empty for performance
|
||||
// reasons. If you want to understand better why, please read:
|
||||
//
|
||||
// http://java.sun.com/javase/6/docs/api/javax/swing/DefaultListCellRenderer.html#override
|
||||
|
||||
public void validate() {}
|
||||
public void invalidate() {}
|
||||
public void repaint() {}
|
||||
public void revalidate() {}
|
||||
public void repaint(long tm, int x, int y, int width, int height) {}
|
||||
public void repaint(Rectangle r) {}
|
||||
}
|
BIN
SNHUTravel/src/resources/glacier.jpg
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
SNHUTravel/src/resources/grandcanyon.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
SNHUTravel/src/resources/honolulu.jpg
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
SNHUTravel/src/resources/maui.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
SNHUTravel/src/resources/yellowstone.jpg
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
Slide Show/SlideShow.jar
Normal file
BIN
Slide Show/SlideShow.zip
Normal file
4
Slide Show/SlideShow/META-INF/MANIFEST.MF
Normal file
|
@ -0,0 +1,4 @@
|
|||
Manifest-Version: 1.0
|
||||
Main-Class: SlideShow
|
||||
Class-Path: .
|
||||
|
BIN
Slide Show/SlideShow/SlideShow$1.class
Normal file
BIN
Slide Show/SlideShow/SlideShow$2.class
Normal file
BIN
Slide Show/SlideShow/SlideShow$3.class
Normal file
BIN
Slide Show/SlideShow/SlideShow.class
Normal file
BIN
Slide Show/SlideShow/resources/Trip1.jpg
Normal file
After Width: | Height: | Size: 275 KiB |
BIN
Slide Show/SlideShow/resources/Trip2.jpg
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
Slide Show/SlideShow/resources/Trip3.jpg
Normal file
After Width: | Height: | Size: 3.6 MiB |
BIN
Slide Show/SlideShow/resources/Trip4.jpg
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
Slide Show/SlideShow/resources/Trip5.jpg
Normal file
After Width: | Height: | Size: 697 KiB |
BIN
Slide Show/bin/SlideShow$1.class
Normal file
BIN
Slide Show/bin/SlideShow$2.class
Normal file
BIN
Slide Show/bin/SlideShow$3.class
Normal file
BIN
Slide Show/bin/SlideShow.class
Normal file
BIN
Slide Show/bin/resources/Trip1.jpg
Normal file
After Width: | Height: | Size: 275 KiB |
BIN
Slide Show/bin/resources/Trip2.jpg
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
Slide Show/bin/resources/Trip3.jpg
Normal file
After Width: | Height: | Size: 3.6 MiB |
BIN
Slide Show/bin/resources/Trip4.jpg
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
Slide Show/bin/resources/Trip5.jpg
Normal file
After Width: | Height: | Size: 697 KiB |
185
Slide Show/src/SlideShow.java
Normal file
|
@ -0,0 +1,185 @@
|
|||
import java.awt.BorderLayout;
|
||||
import java.awt.CardLayout;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.HeadlessException;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import java.awt.Color;
|
||||
|
||||
public class SlideShow extends JFrame {
|
||||
|
||||
/** Edits by Cody Cook on June 3, 2023
|
||||
* CS-250
|
||||
*/
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
//Declare Variables
|
||||
private JPanel slidePane;
|
||||
private JPanel textPane;
|
||||
private JPanel buttonPane;
|
||||
private CardLayout card;
|
||||
private CardLayout cardText;
|
||||
private JButton btnPrev;
|
||||
private JButton btnNext;
|
||||
private JLabel lblSlide;
|
||||
private JLabel lblTextArea;
|
||||
|
||||
/**
|
||||
* Create the application.
|
||||
*/
|
||||
public SlideShow() throws HeadlessException {
|
||||
initComponent();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the contents of the frame.
|
||||
*/
|
||||
private void initComponent() {
|
||||
//Initialize variables to empty objects
|
||||
card = new CardLayout();
|
||||
cardText = new CardLayout();
|
||||
slidePane = new JPanel();
|
||||
textPane = new JPanel();
|
||||
textPane.setBackground(Color.BLUE);
|
||||
textPane.setBounds(5, 470, 790, 50);
|
||||
textPane.setVisible(true);
|
||||
buttonPane = new JPanel();
|
||||
btnPrev = new JButton();
|
||||
btnNext = new JButton();
|
||||
lblSlide = new JLabel();
|
||||
lblTextArea = new JLabel();
|
||||
|
||||
//Setup frame attributes
|
||||
setSize(800, 600);
|
||||
setLocationRelativeTo(null);
|
||||
setTitle("Top 5 Detox/Wellness SlideShow"); // 2023/06/03: Update Title to reflex Detox/Wellness
|
||||
getContentPane().setLayout(new BorderLayout(10, 50));
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
//Setting the layouts for the panels
|
||||
slidePane.setLayout(card);
|
||||
textPane.setLayout(cardText);
|
||||
|
||||
//logic to add each of the slides and text
|
||||
for (int i = 1; i <= 5; i++) {
|
||||
lblSlide = new JLabel();
|
||||
lblTextArea = new JLabel();
|
||||
lblSlide.setText(getResizeIcon(i));
|
||||
lblTextArea.setText(getTextDescription(i));
|
||||
slidePane.add(lblSlide, "card" + i);
|
||||
textPane.add(lblTextArea, "cardText" + i);
|
||||
}
|
||||
|
||||
getContentPane().add(slidePane, BorderLayout.CENTER);
|
||||
getContentPane().add(textPane, BorderLayout.SOUTH);
|
||||
|
||||
buttonPane.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 10));
|
||||
|
||||
btnPrev.setText("Previous");
|
||||
btnPrev.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
goPrevious();
|
||||
}
|
||||
});
|
||||
buttonPane.add(btnPrev);
|
||||
|
||||
btnNext.setText("Next");
|
||||
btnNext.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
goNext();
|
||||
}
|
||||
});
|
||||
buttonPane.add(btnNext);
|
||||
|
||||
getContentPane().add(buttonPane, BorderLayout.SOUTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Previous Button Functionality
|
||||
*/
|
||||
private void goPrevious() {
|
||||
card.previous(slidePane);
|
||||
cardText.previous(textPane);
|
||||
}
|
||||
|
||||
/**
|
||||
* Next Button Functionality
|
||||
*/
|
||||
private void goNext() {
|
||||
card.next(slidePane);
|
||||
cardText.next(textPane);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the images
|
||||
*/
|
||||
private String getResizeIcon(int i) {
|
||||
String image = "";
|
||||
// 2023/06/03: Removed TestImageX.jpg from resources.
|
||||
if (i==1){
|
||||
// 2023/06/03: Update TestImage1.jpg to Trip1.jpg; picture collected from https://www.yourgolftravel.com/le-blanc-spa-resort-los-cabos on 6/3; creative commons
|
||||
image = "<html><body><img width= '800' height='500' src='" + getClass().getResource("/resources/Trip1.jpg") + "'</body></html>";
|
||||
} else if (i==2){
|
||||
// 2023/06/03: Update TestImage2.jpg to Trip2.jpg; picture collected from https://www.flickr.com/photos/alainamcbride/6210337494 on 6/3; creative commons license
|
||||
image = "<html><body><img width= '800' height='500' src='" + getClass().getResource("/resources/Trip2.jpg") + "'</body></html>";
|
||||
} else if (i==3){
|
||||
// 2023/06/03: Update TestImage3.jpg to Trip3.jpg; picture collected from https://www.flickr.com/photos/percygermany/32626529922 on 6/3; creative commons license
|
||||
image = "<html><body><img width= '800' height='500' src='" + getClass().getResource("/resources/Trip3.jpg") + "'</body></html>";
|
||||
} else if (i==4){
|
||||
// 2023/06/03: Update TestImage4.jpg to Trip4.jpg; picture collected from https://www.12fly.com.my/lifestyle/en/cleanse-detox-retreats-at-revi%CC%84vo%CC%84-wellness-resort/ on 6/3; creative commons license
|
||||
image = "<html><body><img width= '800' height='500' src='" + getClass().getResource("/resources/Trip4.jpg") + "'</body></html>";
|
||||
} else if (i==5){
|
||||
// 2023/06/03: Update TestImage5.jpg to Trip5.jpg; picture collected from https://www.yourgolftravel.com/barcelo-bavaro-beach-resort on 6/3; creative commons license
|
||||
image = "<html><body><img width= '800' height='500' src='" + getClass().getResource("/resources/Trip5.jpg") + "'</body></html>";
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the text values
|
||||
*/
|
||||
private String getTextDescription(int i) {
|
||||
String text = "";
|
||||
if (i==1){
|
||||
// 2023/06/03: Adjusted #1 to focus on detox/wellness travel
|
||||
text = "<html><body><font size='5'>#1 Los Cabos Spa Getaway</font><br>Rejuvenate your mind and body at a luxurious wellness spa located in the heart of Los Cabos.</body></html>";
|
||||
} else if (i==2){
|
||||
// 2023/06/03: Adjusted #2 to focus on detox/wellness travel; copy tag usage from #1 for description
|
||||
text = "<html><body><font size='5'>#2 Yoga in Yosemite</font><br>Embark on a serene journey practicing Yoga surrounded by the tranquil beauty of Yosemite.</body></html>";
|
||||
} else if (i==3){
|
||||
// 2023/06/03: Adjusted #3 to focus on detox/wellness travel; copy tag usage from #1 for description
|
||||
text = "<html><body><font size='5'>#3 Berlin Body</font><br>Experience holistic healing and body detox programs in the vibrant city of Berlin.</body></html>";
|
||||
} else if (i==4){
|
||||
// 2023/06/03: Adjusted #4 to focus on detox/wellness travel; copy tag usage from #1 for description
|
||||
text = "<html><body><font size='5'>#4 Peru Purification</font><br>Embark on a purification journey with traditional Incan healing rituals amidst the majestic Andes.</body></html>";
|
||||
} else if (i==5){
|
||||
// 2023/06/03: Adjusted #5 to focus on detox/wellness travel; copy tag usage from #1 for description
|
||||
text = "<html><body><font size='5'>#5 Detox in the Dominican Republic</font><br>Immerse yourself in peaceful coastal retreats offering detox programs in the charming Dominican Republic.</body></html>";
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Launch the application.
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
SlideShow ss = new SlideShow();
|
||||
ss.setVisible(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
BIN
Slide Show/src/resources/Trip1.jpg
Normal file
After Width: | Height: | Size: 275 KiB |
BIN
Slide Show/src/resources/Trip2.jpg
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
Slide Show/src/resources/Trip3.jpg
Normal file
After Width: | Height: | Size: 3.6 MiB |
BIN
Slide Show/src/resources/Trip4.jpg
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
Slide Show/src/resources/Trip5.jpg
Normal file
After Width: | Height: | Size: 697 KiB |