public static void main(String[] args) { final JPopupMenu menu = new JPopupMenu(); menu.setLayout(new GridLayout(0, 3, 5, 5)); final MenuedButton button = new MenuedButton("Icons", menu); for (int i = 0; i < 9; i++) { // replace "print.gif" with your own image final JLabel label = new JLabel("" + i); // new ImageIcon("resources/images/print.gif") ); label.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { button.getMainButton().setIcon(label.getIcon()); menu.setVisible(false); } }); menu.add(label); } JFrame frame = new JFrame("Button Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new JLabel("Click Arrow Button To Show Popup"), BorderLayout.NORTH); frame.getContentPane().add(button, BorderLayout.CENTER); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); }
private void helpButtonActionPerformed(java.awt.event.ActionEvent evt) { JPopupMenu jp = new JPopupMenu(); JMenuItem mi = new JMenuItem("Help"); // No i18n JPanel panel = new JPanel(); String msgTxt = "<html>Drops redundant events/alerts. <br>The suppressed/dropped Events/alerts will not <br>be added to the database. <br>You can choose to suppress all events/alerts <br>or only those that occur after a <br>certain period of time. <br>Refer Admin Guide for details.</html>"; // No i18n /*JTextArea ep = new JTextArea(); ep.setColumns(20); ep.setLineWrap(true); ep.setRows(10); ep.setBackground(new java.awt.Color(200, 200, 200)); ep.setWrapStyleWord(true);*/ JLabel ep = new JLabel(); ep.setSize(300, 200); ep.setText(msgTxt); panel.add(ep); mi.setLayout(new BorderLayout()); mi.setPreferredSize(panel.getPreferredSize()); mi.setFocusPainted(false); mi.add(panel, BorderLayout.CENTER); jp.setLayout(new BorderLayout()); jp.add(mi, BorderLayout.CENTER); jp.show(helpButton, -60, -60); }
public MenuPanelOrderPanel(MenuPanel in) { menuPanel = in; border = new BorderLayout(); setLayout(border); setPreferredSize(new Dimension(280, 800)); taxModifier = 1.05; finalModifier = 0; finalPercentModifier = 1; topPanel = new JPanel(); midPanel = new JPanel(); bottomPanel = new JPanel(); // set up topPanel components topPanelLabel = new JLabel("Reset all"); topPanelLabel.addMouseListener(this); topPanel.setBackground(Color.LIGHT_GRAY); // set up midPanel components midLayout = new GridLayout(16, 1); midPanel.setLayout(midLayout); orderLabel = new JLabel[300]; itemCountOfLabel = new int[300]; itemPriceOfLabel = new double[300]; itemNameOfLabel = new String[300]; itemPriceModifier = new double[300]; itemOriginalPrice = new double[300]; counter = 0; popup = new JPopupMenu(); discountPopup = new JPopupMenu(); countPopup = new JPopupMenu(); midPanel.setBackground(Color.WHITE); // set up bottomPanel components bottomLayout = new GridLayout(3, 2); bottomPanel.setLayout(bottomLayout); costLabel = new JLabel("Cost: .00"); costLabel.addMouseListener(this); paidLabel = new JLabel("Paid: .00"); changeLabel = new JLabel("Change: .00"); costTaxOnlyLabel = new JLabel("Tax: .00"); costAfterTaxLabel = new JLabel("Total: .00"); // set up popup components popupLayout = new GridLayout(2, 2); popup.setLayout(popupLayout); removeButton = new JButton("Remove"); removeButton.addActionListener(this); cancelButton = new JButton("Cancel"); cancelButton.addActionListener(this); discountButton = new JButton("Discount"); discountButton.addActionListener(this); countButton = new JButton("Count"); countButton.addActionListener(this); // set up discountPopup components itemDiscountPopupLabel = new JLabel("Discount: "); itemDiscountPopupString = ""; discountKeypadPanel = new JPanel(); percentagePanel = new JPanel(); resetPanel = new JPanel(); discountLayout = new BorderLayout(); discountPopup.setLayout(discountLayout); discountKeypadLayout = new GridLayout(4, 3); discountKeypadPanel.setLayout(discountKeypadLayout); percentLayout = new GridLayout(2, 1); percentagePanel.setLayout(percentLayout); resetPanel.setLayout(percentLayout); discountButton0 = new JButton("0"); discountButton0.setPreferredSize(new Dimension(90, 90)); discountButton1 = new JButton("1"); discountButton2 = new JButton("2"); discountButton3 = new JButton("3"); discountButton4 = new JButton("4"); discountButton5 = new JButton("5"); discountButton6 = new JButton("6"); discountButton7 = new JButton("7"); discountButton8 = new JButton("8"); discountButton9 = new JButton("9"); okDiscountButton = new JButton("$"); clearDiscountButton = new JButton("Cancel"); percentDiscountButton = new JButton("%"); resetDiscountButton = new JButton("Reset"); discountButton0.addActionListener(this); discountButton1.addActionListener(this); discountButton2.addActionListener(this); discountButton3.addActionListener(this); discountButton4.addActionListener(this); discountButton5.addActionListener(this); discountButton6.addActionListener(this); discountButton7.addActionListener(this); discountButton8.addActionListener(this); discountButton9.addActionListener(this); okDiscountButton.addActionListener(this); clearDiscountButton.addActionListener(this); percentDiscountButton.addActionListener(this); resetDiscountButton.addActionListener(this); percentagePanel.add(okDiscountButton); percentagePanel.add(percentDiscountButton); resetPanel.add(resetDiscountButton); resetPanel.add(clearDiscountButton); discountKeypadPanel.add(discountButton1); discountKeypadPanel.add(discountButton2); discountKeypadPanel.add(discountButton3); discountKeypadPanel.add(discountButton4); discountKeypadPanel.add(discountButton5); discountKeypadPanel.add(discountButton6); discountKeypadPanel.add(discountButton7); discountKeypadPanel.add(discountButton8); discountKeypadPanel.add(discountButton9); discountKeypadPanel.add(percentagePanel); discountKeypadPanel.add(discountButton0); discountKeypadPanel.add(resetPanel); // set up countPopup components itemCountPopupLabel = new JLabel("Item count: "); itemCountPopupString = ""; countKeypadPanel = new JPanel(); countLayout = new BorderLayout(); countPopup.setLayout(countLayout); keypadLayout = new GridLayout(4, 3); countKeypadPanel.setLayout(keypadLayout); countButton0 = new JButton("0"); countButton0.setPreferredSize(new Dimension(90, 90)); countButton1 = new JButton("1"); countButton2 = new JButton("2"); countButton3 = new JButton("3"); countButton4 = new JButton("4"); countButton5 = new JButton("5"); countButton6 = new JButton("6"); countButton7 = new JButton("7"); countButton8 = new JButton("8"); countButton9 = new JButton("9"); okCountButton = new JButton("Ok"); clearCountButton = new JButton("Cancel"); countButton0.addActionListener(this); countButton1.addActionListener(this); countButton2.addActionListener(this); countButton3.addActionListener(this); countButton4.addActionListener(this); countButton5.addActionListener(this); countButton6.addActionListener(this); countButton7.addActionListener(this); countButton8.addActionListener(this); countButton9.addActionListener(this); okCountButton.addActionListener(this); clearCountButton.addActionListener(this); countKeypadPanel.add(countButton1); countKeypadPanel.add(countButton2); countKeypadPanel.add(countButton3); countKeypadPanel.add(countButton4); countKeypadPanel.add(countButton5); countKeypadPanel.add(countButton6); countKeypadPanel.add(countButton7); countKeypadPanel.add(countButton8); countKeypadPanel.add(countButton9); countKeypadPanel.add(okCountButton); countKeypadPanel.add(countButton0); countKeypadPanel.add(clearCountButton); // add topPanel components topPanel.add(topPanelLabel); // add midPanel components // add bottomPanel components bottomPanel.add(costLabel); bottomPanel.add(paidLabel); bottomPanel.add(costTaxOnlyLabel); bottomPanel.add(changeLabel); bottomPanel.add(costAfterTaxLabel); // add popup components popup.add(removeButton); removeButton.setPreferredSize(new Dimension(80, 80)); popup.add(discountButton); popup.add(countButton); popup.add(cancelButton); // add discoundPopup components discountPopup.add(itemDiscountPopupLabel, BorderLayout.NORTH); discountPopup.add(discountKeypadPanel, BorderLayout.CENTER); // add countPopup components countPopup.add(itemCountPopupLabel, BorderLayout.NORTH); countPopup.add(countKeypadPanel, BorderLayout.CENTER); printClass = new Print(this); add(topPanel, BorderLayout.NORTH); add(midPanel, BorderLayout.CENTER); add(bottomPanel, BorderLayout.SOUTH); }
public static void setPopup( final JTextField tf, Object[][] obj, final JLabel[] labels, final int[] tbl_widths_customers, String[] col_names) { final JPopupMenu popup = new JPopupMenu(); Dimension d = tf.getSize(); popup.setLayout(new BorderLayout()); JPanel p = new JPanel(); p.setLayout(new BorderLayout()); p.setBackground(Color.white); JScrollPane pl = new JScrollPane(); final JTable tbl = new JTable(); pl.setBorder(null); TableRenderer.setModel(tbl, obj, col_names, tbl_widths_customers); tbl.getTableHeader().setPreferredSize(new Dimension(0, 0)); tbl.setBorder(null); tbl.setGridColor(new java.awt.Color(204, 204, 204)); pl.setViewportView(tbl); p.add(pl); popup.add(p); popup.setPopupSize(d.width, 150); popup.show(tf, 0, tf.getHeight()); tf.grabFocus(); tf.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DOWN) { if (tbl.getRowCount() != 0) { tbl.setRowSelectionInterval(0, 0); tbl.grabFocus(); } } } }); tbl.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_LEFT) { int row = tbl.getSelectedRow(); tbl.removeRowSelectionInterval(row, row); tf.grabFocus(); } if (e.getKeyCode() == KeyEvent.VK_ENTER) { int row = tbl.getSelectedRow(); int i = 0; for (JLabel lbl : labels) { lbl.setText(tbl.getModel().getValueAt(row, i).toString()); i++; } String[] output = new String[tbl_widths_customers.length]; int u = 0; for (int y : tbl_widths_customers) { output[u] = tbl.getModel().getValueAt(row, u).toString(); u++; } tf.grabFocus(); popup.setVisible(false); ok1(output, row); } } }); tbl.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { int row = tbl.getSelectedRow(); String[] output = new String[tbl_widths_customers.length]; int u = 0; for (int y : tbl_widths_customers) { output[u] = tbl.getModel().getValueAt(row, u).toString(); u++; } tf.grabFocus(); popup.setVisible(false); ok1(output, row); } }); }
/** * Creates a ClickableTooltip with custom show/hide delays * * @param text The tooltip text * @param action The action which should be provided to the user * @param startupDelay Delay in ms before the tooltip should be shown * @param showTime Delay in ms after which the tooltip vanishes when the cursor moved away from * the component or the tooltip area */ public ClickableTooltip( final String text, final Action action, final int startupDelay, final int showTime) { Color c = UIUtilities.TOOLTIP_COLOR; Font f = (FontUIResource) UIManager.get("ToolTip.font"); popupMenu = new JPopupMenu(); popupMenu.setLayout(new BoxLayout(popupMenu, BoxLayout.PAGE_AXIS)); popupMenu.setBorder(BorderFactory.createEmptyBorder(INSETS, INSETS, INSETS, INSETS)); popupMenu.setBackground(c); popupMenu.setFont(f); if (text != null) { JLabel desc = new JLabel(text); desc.setBackground(c); desc.setFont(f); popupMenu.add(desc); } final JLabel label = new JLabel(); label.setForeground(LINK_COLOR); label.setBackground(c); label.setFont(f); label.setText((String) action.getValue(Action.NAME)); label.addMouseListener( new MouseAdapter() { Cursor defaultCursor = null; public void mouseReleased(MouseEvent e) { action.actionPerformed( new ActionEvent(this, -1, (String) action.getValue(Action.ACTION_COMMAND_KEY))); // if the user clicks on the 'link' remove tooltip popupMenu.setVisible(false); } @Override public void mouseEntered(MouseEvent e) { defaultCursor = label.getCursor(); label.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); hideTimer.stop(); } @Override public void mouseExited(MouseEvent e) { if (defaultCursor != null) { label.setCursor(defaultCursor); } hideTimer.restart(); } }); popupMenu.add(label); showTimer = new Timer( startupDelay, new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { popupMenu.show(component, location.x, location.y); showTimer.stop(); } }); hideTimer = new Timer( startupDelay + showTime, new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { popupMenu.setVisible(false); hideTimer.stop(); } }); }