Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.41 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Font;
  3. import java.awt.GridLayout;
  4. import java.awt.Image;
  5. import java.awt.event.ItemEvent;
  6. import java.awt.event.ItemListener;
  7. import java.util.ArrayList;
  8. import java.util.Random;
  9.  
  10. import javax.swing.Icon;
  11. import javax.swing.ImageIcon;
  12. import javax.swing.JButton;
  13. import javax.swing.JFrame;
  14. import javax.swing.JLabel;
  15. import javax.swing.JPanel;
  16. import javax.swing.JTextPane;
  17. import javax.swing.JToggleButton;
  18. import javax.swing.SwingConstants;
  19.  
  20. public class Choose {
  21.  
  22. JFrame frame;
  23. private JLabel lblChoose;
  24. private JTextPane txtInfo;
  25. private JButton submitButton;
  26. private JLabel lblChoices, c1, c2, c3;
  27. private JPanel panel;
  28. private final String SOURCE = "resources\images\";
  29.  
  30. public Choose() {
  31. initialize();
  32. }
  33.  
  34. private void initialize() {
  35. frame = new JFrame();
  36. frame.getContentPane().setBackground(Color.WHITE);
  37. frame.setBounds(100, 100, 537, 671);
  38. frame.setLocationRelativeTo(null);
  39. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  40. frame.getContentPane().setLayout(null);
  41.  
  42. lblChoose = new JLabel("Choose images");
  43. lblChoose.setBounds(128, 21, 262, 32);
  44. lblChoose.setHorizontalAlignment(SwingConstants.CENTER);
  45. lblChoose.setFont(new Font("Arial", Font.PLAIN, 27));
  46. frame.getContentPane().add(lblChoose);
  47.  
  48. txtInfo = new JTextPane();
  49. txtInfo.setBounds(51, 51, 429, 57);
  50. txtInfo.setFont(new Font("Arial", Font.PLAIN, 14));
  51. txtInfo.setEditable(false);
  52. txtInfo.setText(" choose 3 images");
  53. frame.getContentPane().add(txtInfo);
  54.  
  55. submitButton = new JButton("submit");
  56. submitButton.setBounds(397, 578, 83, 28);
  57. submitButton.setForeground(Color.BLACK);
  58. submitButton.setBackground(Color.WHITE);
  59. submitButton.setFont(new Font("Calibri", Font.PLAIN, 12));
  60. frame.getContentPane().add(submitButton);
  61.  
  62. c1 = new JLabel();
  63. c1.setForeground(new Color(0, 0, 0));
  64. c1.setBackground(Color.WHITE);
  65. c1.setBounds(71, 540, 69, 66);
  66. frame.getContentPane().add(c1);
  67.  
  68. c2 = new JLabel();
  69. c2.setForeground(new Color(0, 0, 0));
  70. c2.setBackground(Color.WHITE);
  71. c2.setBounds(141, 540, 69, 66);
  72. frame.getContentPane().add(c2);
  73.  
  74. c3 = new JLabel();
  75. c3.setForeground(new Color(0, 0, 0));
  76. c3.setBackground(Color.WHITE);
  77. c3.setBounds(211, 540, 69, 66);
  78. frame.getContentPane().add(c3);
  79.  
  80. lblChoices = new JLabel("your choices:");
  81. lblChoices.setBackground(Color.WHITE);
  82. lblChoices.setFont(new Font("Calibri", Font.PLAIN, 13));
  83. lblChoices.setBounds(71, 525, 92, 17);
  84. frame.getContentPane().add(lblChoices);
  85.  
  86. panel1();
  87. }
  88.  
  89. private void panel1() {
  90.  
  91. panel = new JPanel();
  92. panel.setBackground(Color.WHITE);
  93. panel.setBounds(71, 120, 382, 398);
  94.  
  95. GridLayout layout = new GridLayout(5, 5);
  96. panel.setLayout(layout);
  97. layout.setHgap(7);
  98. layout.setVgap(7);
  99. layout.layoutContainer(panel);
  100.  
  101. createButtons();
  102. }
  103.  
  104. private void createButtons() {
  105.  
  106. JToggleButton[][] buttons = new JToggleButton[5][4];
  107.  
  108. ArrayList<Integer> list = new ArrayList<Integer>();
  109.  
  110. Random rand = new Random();
  111. for (int i = 0; i < buttons.length; i++) {
  112. for (int j = 0; j < buttons[i].length; j++) {
  113. int randomNum = rand.nextInt((300 - 1) + 1) + 1;
  114.  
  115. while (list.contains(randomNum)) {
  116. randomNum = rand.nextInt((300 - 1) + 1) + 1;
  117.  
  118. }
  119. list.add(randomNum);
  120.  
  121. buttons[i][j] = new JToggleButton();
  122. buttons[i][j].setBackground(Color.WHITE);
  123. buttons[i][j].putClientProperty("randomNum", randomNum);
  124. ImageIcon icon = new ImageIcon(SOURCE + randomNum + ".gif");
  125.  
  126. int offset = buttons[i][j].getInsets().left;
  127. buttons[i][j].setIcon(
  128. resizeIcon(icon, buttons[i][j].getWidth() - offset, buttons[i][j].getHeight() - offset));
  129.  
  130. panel.add(buttons[i][j]);
  131.  
  132. buttons[i][j].addItemListener(new ItemListener() {
  133. public void itemStateChanged(ItemEvent e) {
  134. int img = (Integer) ((JToggleButton) e.getSource()).getClientProperty("randomNum");
  135.  
  136. if (e.getStateChange() == ItemEvent.SELECTED) {
  137. System.out.println("image " + img + " selected");
  138.  
  139. c1.setIcon(new ImageIcon(new ImageIcon(SOURCE + img + ".gif").getImage()
  140. .getScaledInstance(65, 65, Image.SCALE_DEFAULT)));
  141. c2.setIcon(new ImageIcon(new ImageIcon(SOURCE + img + ".gif").getImage()
  142. .getScaledInstance(65, 65, Image.SCALE_DEFAULT)));
  143. c3.setIcon(new ImageIcon(new ImageIcon(SOURCE + img + ".gif").getImage()
  144. .getScaledInstance(65, 65, Image.SCALE_DEFAULT)));
  145.  
  146. } else if (e.getStateChange() == ItemEvent.DESELECTED) {
  147. System.out.println("image " + img + " deselected");
  148. c1.setIcon(new ImageIcon());
  149. c2.setIcon(new ImageIcon());
  150. c3.setIcon(new ImageIcon());
  151. }
  152. }
  153. });
  154.  
  155. frame.getContentPane().add(panel);
  156. }
  157. }
  158. }
  159.  
  160. private Icon resizeIcon(ImageIcon icon, int resizedWidth, int resizedHeight) {
  161. Image img = icon.getImage();
  162. Image resizedImage = img.getScaledInstance(65, 65, java.awt.Image.SCALE_SMOOTH);
  163. return new ImageIcon(resizedImage);
  164. }
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement