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); } } Zitieren
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. Zitieren
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) Zitieren
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()); } } Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.