BackgroundPopUp.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package ui.view;
  2. import javax.swing.JDialog;
  3. import javax.swing.JFileChooser;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import javax.swing.JTextField;
  7. import javax.swing.filechooser.FileNameExtensionFilter;
  8. import javax.swing.ImageIcon;
  9. import javax.swing.JButton;
  10. import org.eclipse.wb.swing.FocusTraversalOnArray;
  11. import javafx.scene.image.Image;
  12. import javafx.stage.FileChooser;
  13. import java.awt.Component;
  14. import java.awt.Window;
  15. import java.awt.event.ActionEvent;
  16. import java.awt.event.ActionListener;
  17. import java.io.File;
  18. import java.awt.BorderLayout;
  19. import javax.swing.JLabel;
  20. import javax.swing.JRadioButton;
  21. import javax.swing.BoxLayout;
  22. import javax.swing.SwingConstants;
  23. import java.awt.FlowLayout;
  24. import java.awt.Choice;
  25. /**
  26. * Popup for setting the Background Image for the current View.
  27. **/
  28. public class BackgroundPopUp extends JDialog {
  29. /**
  30. *
  31. */
  32. private static final long serialVersionUID = 1L;
  33. private final JTextField textPath = new JTextField("");
  34. private final JButton btnBrowse = new JButton("Browse");
  35. private JPanel panelImageRadio = new JPanel();
  36. private String path = "";
  37. private final JPanel panelBrowse = new JPanel();
  38. private final JPanel panelOK = new JPanel();
  39. private final JButton btnOK = new JButton("OK");
  40. private final JLabel lblImage = new JLabel();
  41. private double imgScale = 1;
  42. public BackgroundPopUp() {
  43. super((java.awt.Frame) null, true);
  44. this.setTitle("Set View Background");
  45. setBounds(100, 100, 400, 250);
  46. getContentPane().add(panelImageRadio, BorderLayout.CENTER);
  47. panelImageRadio.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
  48. lblImage.setHorizontalAlignment(SwingConstants.RIGHT);
  49. panelImageRadio.add(lblImage);
  50. getContentPane().add(panelBrowse, BorderLayout.NORTH);
  51. panelBrowse.add(btnBrowse);
  52. // Browse Row Functions
  53. btnBrowse.addActionListener(new ActionListener() {
  54. @Override
  55. public void actionPerformed(ActionEvent e) {
  56. JFileChooser fileChooser = new JFileChooser();
  57. FileNameExtensionFilter filter = new FileNameExtensionFilter("png, jpg or jpeg", "png", "jpg", "jpeg");
  58. fileChooser.setFileFilter(filter);
  59. if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
  60. textPath.setText(fileChooser.getSelectedFile().getPath());
  61. ImageIcon icon = new ImageIcon(textPath.getText());
  62. imgScale = Math.max(icon.getIconWidth(), icon.getIconHeight()) / 200;
  63. lblImage.setIcon(new ImageIcon(new ImageIcon(textPath.getText()).getImage().getScaledInstance(
  64. (int) (icon.getIconWidth() / imgScale), (int) (icon.getIconHeight() / imgScale),
  65. java.awt.Image.SCALE_SMOOTH)));
  66. }
  67. }
  68. });
  69. textPath.setEditable(false);
  70. panelBrowse.add(textPath);
  71. textPath.setColumns(20);
  72. panelImageRadio.setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[] { btnBrowse, textPath }));
  73. getContentPane().add(panelOK, BorderLayout.SOUTH);
  74. panelOK.add(btnOK);
  75. }
  76. }