Rainer Wahnsinn Geschrieben 29. November 2010 Geschrieben 29. November 2010 Halli Hallo, für ein Projekt muss ich eine EKG-Kurve in einem JPanel darstellen. Im Hauptfenster habe ich ein GridLayout(2,2), wovon ein Panel eben das mit der EKG-Kurve ist. Da diese jedoch länger ist als das Panel muss ich eine Scrollbar implementieren, die allerdings nicht das tut was sie soll. Im Internet habe ich zwar viel Beispiele gefunden, die mich allerdings nicht wirklich weiter gebracht haben. Ich hoffe, dass mir hier jemand weiterhelfen kann, danke im Vorraus, Rainer Hier der Code : package view; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.border.Border; public class EkgBildPanel { private static JPanel ekgBildPanel; public EkgBildPanel(JFrame hauptfenster) { ekgBildPanel = new JPanel(new BorderLayout()); Border ekgBildPanelBorder = BorderFactory.createLineBorder(Color.black); ekgBildPanel.setBorder(ekgBildPanelBorder); Container contentPane = hauptfenster.getContentPane(); contentPane.add(ekgBildPanel); JLabel title = new JLabel(" EKG-Kurve :"); title.setFont(new Font("Dialog", 0, 25)); ekgBildPanel.add(title, BorderLayout.NORTH); paintEkg(); // Scrollbar final JScrollBar scrollbar = new JScrollBar(JScrollBar.HORIZONTAL, 0, 20, 0, 300); scrollbar.setUnitIncrement(2); scrollbar.setBlockIncrement(1); ekgBildPanel.add(scrollbar,BorderLayout.SOUTH); scrollbar.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent e) { scrollbar.setValue(scrollbar.getValue()); paintEkg(); }}); } // Malt die EKG-Kurve public void paintEkg() { ekgBildPanel.repaint(); ekgBildPanel.add(new EKGview(),BorderLayout.CENTER); } }
perdian Geschrieben 29. November 2010 Geschrieben 29. November 2010 [...] muss ich eine Scrollbar implementieren, die allerdings nicht das tut was sie soll.Dann erkläre doch erstmal, was du genau erwartest und stelle dann einen lauffähigen Testcase zur Verfügung, an dem dein Problem nachvollzogen werden kann.
Dragon8 Geschrieben 29. November 2010 Geschrieben 29. November 2010 Also keine Ahnung was du für Tutorials gelesen hast, aber deine Verwendung der Klasse ScrollBar ergibt so leider rein gar keinen Sinn. Schau dir am besten mal das How-to von Oracle dazu an, das sollte dir weiter helfen: How to Use Scroll Panes (The Javaâ„¢ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
Rainer Wahnsinn Geschrieben 29. November 2010 Autor Geschrieben 29. November 2010 Also brauch ich nen ScrollPane, keine Scrollbar...schon mal gut zu wissen :cool::cool: Jetzt aber immer noch die Frage....in diesem Pane soll ein Bild von einem EKG geladen, verändert, gelöscht werden können... Hab mir zwar nen paar Beispiele angeschaut, aber so wirklich will's nicht funktionieren...In dem Pane hab ich's aber schonmal, wenn ich es nach WEST ziehe ist auch nur ein kleiner Teil der Kurve zu sehen...was fehlt jetzt noch damit ich auch die Scrollbalken sehe...? Viele Grüße, Rainer package view; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.ScrollPane; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.border.Border; public class EkgBildPanel { private static JPanel ekgBildPanel; private ScrollPane sc; public EkgBildPanel(JFrame hauptfenster) { ekgBildPanel = new JPanel(new BorderLayout()); Border ekgBildPanelBorder = BorderFactory.createLineBorder(Color.black); ekgBildPanel.setBorder(ekgBildPanelBorder); Container contentPane = hauptfenster.getContentPane(); contentPane.add(ekgBildPanel); JLabel title = new JLabel(" EKG-Kurve :"); title.setFont(new Font("Dialog", 0, 25)); ekgBildPanel.add(title, BorderLayout.NORTH); sc = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED); ekgBildPanel.add(sc,BorderLayout.CENTER); sc.setVisible(true); sc.getVAdjustable().setUnitIncrement(1); sc.getHAdjustable().setUnitIncrement(1); sc.setSize(100,100); paintEkg(); } // Malt die EKG-Kurve public void paintEkg() { sc.repaint(); sc.add(new EKGview()); } }
Dragon8 Geschrieben 29. November 2010 Geschrieben 29. November 2010 ..was fehlt jetzt noch damit ich auch die Scrollbalken sehe...? Das du dir das How To durchliest was ich dir hier vor verlinkt hatte.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden