ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
813
813
EMPFEHLEN
-
Hi,
weiß jemand ob es schon eine JPopup Menü Komponente gibt (Swing) die oben und unten jeweils Pfeile (hoch / runter) hat und dann bei MouseOver das Popup Menü scrollen?!
Im Notfall würde auch ein JPopup Menü mit ScrollPane genügen.
Gruß
Romsl
-
29.09.06 08:49 #2
Davon wüsste ich nichts, aber du kannst ja dem PopMenu über insert(deinScrollPane,0) ein Scrollpane adden. Und in dem kannst du ja dann anstellen was du willst.
Ich hab keine Ahnung.
Aber davon jede Menge.
-
29.09.06 14:16 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
hier mal ein Beispiel wie man sich selbst so ne Komponente bauen könnte:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
/** * */ package de.tutorials; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Polygon; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; /** * @author Thomas.Darimont */ public class CustomScrollingListExample extends JFrame { public CustomScrollingListExample() { super("CustomScrollingListExample"); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(400, 300); final JPopupMenu popupMenu = new JPopupMenu("PopupMenu"); JList list = new JList(new Object[] { "AAAA", "BBBB", "CCCCCCCC", "DDDD", "EEEE", "FFFF", "GGGG", "0000", "1111", "2222", "3333", "4444" }); popupMenu.add(new CustomList(list)); setVisible(true); addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { popupMenu.show(CustomScrollingListExample.this, e.getX(), e.getY()); } }); } /** * @param args */ public static void main(String[] args) { new CustomScrollingListExample(); } static class ScrollButton extends JButton { static enum ScrollButtonType { UP, DOWN }; Polygon polygon; ScrollButtonType type; public ScrollButton(int width, int height, ScrollButtonType type) { this.type = type; setBorder(BorderFactory.createEmptyBorder()); this.setPreferredSize(new Dimension(width, height)); switch (type) { case DOWN: polygon = new Polygon(new int[] { 0, width / 2, width }, new int[] { 0, height, 0 }, 3); break; case UP: polygon = new Polygon(new int[] { 0, width / 2, width }, new int[] { height, 0, height }, 3); break; } } protected void paintComponent(Graphics graphics) { Graphics2D g = (Graphics2D) graphics; g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.fillPolygon(polygon); } } static class CustomList extends JComponent { JList list; JScrollPane scrollPane; JButton btnScrollUp; JButton btnScrollDown; public CustomList(final JList list) { this.list = list; scrollPane = new JScrollPane(list); Dimension scrollPaneSize = new Dimension(list.getPreferredSize().width + 10, list.getFontMetrics( list.getFont()).getHeight() * list.getVisibleRowCount()); scrollPane.setMaximumSize(scrollPaneSize); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); ActionListener actionListener = new ActionListener() { int viewIndex; public void actionPerformed(ActionEvent e) { if (btnScrollUp == e.getSource()) { System.out.println("up: " + viewIndex); if (viewIndex > 0) viewIndex--; Point point = list.getUI().indexToLocation(list, viewIndex); scrollPane.getViewport().setViewPosition(point); } else if (btnScrollDown == e.getSource()) { System.out.println("down: " + viewIndex); int listSize = list.getModel().getSize(); int visibleRowCount = list.getVisibleRowCount(); if (viewIndex <= listSize - visibleRowCount) { viewIndex++; } Point point = list.getUI().indexToLocation(list, viewIndex); scrollPane.getViewport().setViewPosition(point); } } }; btnScrollUp = new ScrollButton(list.getPreferredSize().width, 10, de.tutorials.CustomScrollingListExample.ScrollButton.ScrollButtonType.UP); btnScrollDown = new ScrollButton(list.getPreferredSize().width, 10, de.tutorials.CustomScrollingListExample.ScrollButton.ScrollButtonType.DOWN); btnScrollUp.addActionListener(actionListener); btnScrollDown.addActionListener(actionListener); setLayout(new BorderLayout()); add(btnScrollUp, BorderLayout.NORTH); add(scrollPane, BorderLayout.CENTER); add(btnScrollDown, BorderLayout.SOUTH); setPreferredSize(new Dimension(scrollPane.getPreferredSize().width, btnScrollUp.getPreferredSize().height + scrollPane.getMaximumSize().height + btnScrollDown.getPreferredSize().height)); } } }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Popup-Menü
Von ts230 im Forum CSSAntworten: 3Letzter Beitrag: 01.03.09, 17:02 -
Scrollfunktion
Von Joonas im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 26.02.09, 20:48 -
Popup Menü
Von selle1 im Forum Flash PlattformAntworten: 4Letzter Beitrag: 08.04.07, 10:54 -
1.Popup-Menü lässt 2.Popup-Menü verschwinden
Von NG-TEAM im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 04.03.04, 17:35 -
URL-POPUP Menü
Von Califax im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 23.07.03, 14:53





Zitieren

Login





