Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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);

	}

}


Geschrieben
[...] 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.
Geschrieben

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());


	}

}


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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...