Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.77 KB | None | 0 0
  1.  
  2. public class Person {
  3. private int height;
  4. private int weight;
  5. private String name;
  6. private Size size;
  7.  
  8. public Person(int w, int h, String name, Size size) {
  9. weight = w;
  10. height = h;
  11. this.name = name;
  12. this.size = size;
  13. }
  14.  
  15. public Size getSize() {
  16. return this.size;
  17. }
  18.  
  19. public String toString() {
  20. return name +"(h=" + height + ",w=" + weight + ",size=" + size +")";
  21. }
  22. }
  23.  
  24. public enum Size {
  25. XS,
  26. S,
  27. M,
  28. L,
  29. XL
  30. }
  31. import java.awt.Color;
  32. import java.awt.Component;
  33.  
  34. import javax.swing.DefaultListCellRenderer;
  35. import javax.swing.JList;
  36.  
  37. public class CellRendererPaint extends DefaultListCellRenderer {
  38.  
  39. private static final long serialVersionUID = 1L;
  40.  
  41. public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected,
  42. boolean cellHasFocus) {
  43. Person p = (Person) value;
  44. Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
  45. if(p.getSize() == Size.XS) c.setBackground(Color.GREEN);
  46. else if(p.getSize() == Size.XL) c.setBackground(Color.RED);
  47. return c;
  48.  
  49. }
  50. }
  51. import java.awt.BorderLayout;
  52. import java.awt.Color;
  53. import java.awt.Dimension;
  54. import java.awt.FlowLayout;
  55. import java.awt.Font;
  56. import java.awt.GridLayout;
  57. import java.awt.event.ActionEvent;
  58. import java.awt.event.ActionListener;
  59. import java.awt.event.ComponentEvent;
  60. import java.awt.event.ComponentListener;
  61. import java.util.ArrayList;
  62. import java.util.LinkedList;
  63. import java.util.List;
  64. import java.util.Vector;
  65.  
  66. import javax.swing.DefaultListCellRenderer;
  67. import javax.swing.DefaultListModel;
  68. import javax.swing.JButton;
  69. import javax.swing.JComboBox;
  70. import javax.swing.JFrame;
  71. import javax.swing.JLabel;
  72. import javax.swing.JList;
  73. import javax.swing.JPanel;
  74. import javax.swing.JScrollPane;
  75. import javax.swing.JSlider;
  76. import javax.swing.JTextArea;
  77. import javax.swing.JTextField;
  78. import javax.swing.ListCellRenderer;
  79. import javax.swing.ListSelectionModel;
  80. import javax.swing.border.TitledBorder;
  81. import javax.swing.event.ListSelectionEvent;
  82. import javax.swing.event.ListSelectionListener;
  83. import java.awt.Component;
  84.  
  85. import javafx.scene.layout.Border;
  86.  
  87. public class Program {
  88.  
  89. public static void main(String[] args) {
  90. List<Person> persons = new ArrayList<Person>();
  91. DefaultListModel<Person> listModel = new DefaultListModel<>();
  92. JList<Person> personList;
  93.  
  94.  
  95. JFrame f = new JFrame("PERSONS");
  96. f.setLayout(new GridLayout(3,1,0,5));
  97.  
  98. //panel1 + JList
  99. JPanel panel1 = new JPanel();
  100. panel1.setLayout(new BorderLayout());
  101. personList = new JList<>(listModel);
  102. panel1.add(new JScrollPane(personList,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),
  103. BorderLayout.CENTER);
  104. //
  105. f.add(panel1);
  106. personList.setCellRenderer(new CellRendererPaint());
  107.  
  108. //panel2
  109. JPanel panel2 = new JPanel();
  110. panel2.setLayout(new GridLayout(2,1,0,5));
  111. JSlider s1 = new JSlider(JSlider.HORIZONTAL,100,200,150);
  112. JSlider s2 = new JSlider(JSlider.HORIZONTAL,40,120,60);
  113. s1.setName("Height");
  114. s1.setMajorTickSpacing(10);
  115. s1.setPaintLabels(true);
  116. s1.setBorder(new TitledBorder("Height[cm]"));
  117. s2.setName("Weight");
  118. s2.setMajorTickSpacing(10);
  119. s2.setPaintLabels(true);
  120. s2.setBorder(new TitledBorder("Weight[kg]"));
  121. s1.setPaintTicks(true);
  122. s2.setPaintTicks(true);
  123. panel2.add(s1,BorderLayout.CENTER);
  124. panel2.add(s2,BorderLayout.CENTER);
  125. //
  126. f.add(panel2);
  127.  
  128. //panel3
  129. Size[] sizes = Size.values();
  130. JPanel panel3 = new JPanel();
  131. panel3.setLayout(new FlowLayout());
  132. JTextField namet = new JTextField();
  133. namet.setPreferredSize(new Dimension(160, 20));
  134. JLabel namel = new JLabel("Name:");
  135. JLabel sizel = new JLabel("Size:");
  136. panel3.add(namel,BorderLayout.CENTER);
  137. panel3.add(namet, BorderLayout.CENTER);
  138. panel3.add(sizel,BorderLayout.CENTER);
  139. JComboBox box = new JComboBox(sizes);
  140. panel3.add(box);
  141. JButton person = new JButton("Add Person");
  142. JButton exit = new JButton("Exit");
  143. panel3.add(person);
  144. panel3.add(exit);
  145. //
  146. f.add(panel3);
  147.  
  148. person.addActionListener(new ActionListener() {
  149.  
  150. @Override
  151. public void actionPerformed(ActionEvent e) {
  152. String name = namet.getText();
  153. Size size = (Size) box.getSelectedItem();
  154. int weight = s2.getValue();
  155. int height = s1.getValue();
  156. Person p = new Person(weight,height,name,size);
  157. listModel.addElement(p);
  158.  
  159. }
  160. });
  161.  
  162. exit.addActionListener(new ActionListener() {
  163.  
  164. @Override
  165. public void actionPerformed(ActionEvent e) {
  166. System.exit(0);
  167. }
  168. });
  169.  
  170.  
  171.  
  172.  
  173. f.pack();
  174. f.setSize(500,350);
  175. f.setVisible(true);
  176. f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  177.  
  178. }
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement