Hallo,
wenn man im Hauptfenster eine Scrollpane hat und im Fenster auch eine, dann wird per Default das innere Fenster gescrollt, sobald man mit der Maus drüber ist (das ist z.B. auch das Default-Verhalten des Browsers - wenn man z.B. hier im Forum einen Beitrag verfasst).
Wie kann man dieses Verhalten so ändern, dass das innere Fenster nur dann gescrollt wird, wenn man hineinklickt, dass aber ansonsten das äußere Fenster gescrollt wird? Müsste man hierzu die mouse-events (hover) abfangen?
wenn man im Hauptfenster eine Scrollpane hat und im Fenster auch eine, dann wird per Default das innere Fenster gescrollt, sobald man mit der Maus drüber ist (das ist z.B. auch das Default-Verhalten des Browsers - wenn man z.B. hier im Forum einen Beitrag verfasst).
Wie kann man dieses Verhalten so ändern, dass das innere Fenster nur dann gescrollt wird, wenn man hineinklickt, dass aber ansonsten das äußere Fenster gescrollt wird? Müsste man hierzu die mouse-events (hover) abfangen?
Java:
package com.eon.pegasus.gas.client.deal.costingresult;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class HelloWorldSwing {
private void createAndShowGUI() {
JFrame frame = new JFrame("MyExample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
JPanel parentPanel = new JPanel();
parentPanel.setPreferredSize(new Dimension(500, 400));
JPanel innerPanel = new JPanel();
JTextArea textAreaInner = new JTextArea(10, 20);
textAreaInner.setText("Lorem ipsum dolor sit amet, consetetur sadipscing elitr.");
JScrollPane scrollPaneInner = new JScrollPane(textAreaInner);
innerPanel.add(scrollPaneInner);
parentPanel.add(innerPanel);
JScrollPane mainSP = new JScrollPane();
mainSP.setViewportView(parentPanel);
frame.add(mainSP);
frame.setPreferredSize(new Dimension(500, 400));
frame.pack();
frame.setVisible(true);
}
public static void main(final String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new HelloWorldSwing().createAndShowGUI();
}
});
}
}