Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

	}

}


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

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


	}

}


Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.