diff --git a/src/packageIHM/JPanelConversation.java b/src/packageIHM/JPanelConversation.java index 543b203..21f134f 100644 --- a/src/packageIHM/JPanelConversation.java +++ b/src/packageIHM/JPanelConversation.java @@ -22,6 +22,7 @@ public class JPanelConversation extends JPanel private int offset = 0; private boolean initialized = false; private int maxCharByLine = 50; + private int fullHeight = -1; JPanelConversation(MaJFrame mjf, ArrayList messages) { @@ -90,7 +91,7 @@ public class JPanelConversation extends JPanel public void calculateOffsetToShowLastMessage() { - int fullHeight = getFullHeightMessage(); + fullHeight = getFullHeightMessage(); if (fullHeight>getHeight()) { offset = fullHeight-getHeight(); } @@ -98,10 +99,12 @@ public class JPanelConversation extends JPanel public void up(int x) { offset = offset + x; + if (offset>(fullHeight-getHeight())) offset=(fullHeight-getHeight()); } public void down(int x) { offset = offset - x; + if (offset<0) offset=0; } public void paintComponent(Graphics g) { diff --git a/src/packageIHM/MaJFrame.java b/src/packageIHM/MaJFrame.java index 3b5529f..b8c0493 100644 --- a/src/packageIHM/MaJFrame.java +++ b/src/packageIHM/MaJFrame.java @@ -8,6 +8,8 @@ import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; +import java.awt.event.MouseWheelEvent; +import java.awt.event.MouseWheelListener; import java.util.ArrayList; import javax.swing.AbstractAction; @@ -20,7 +22,7 @@ import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; import javax.swing.border.LineBorder; -public class MaJFrame extends JFrame implements MouseMotionListener{ +public class MaJFrame extends JFrame implements MouseMotionListener, MouseWheelListener{ private static final long serialVersionUID = 7252959164975426293L; private JPanel contentPane; @@ -84,6 +86,8 @@ public class MaJFrame extends JFrame implements MouseMotionListener{ conversationPanel = new JPanelConversation(this, messages); conversationPanel .setBackground(Color.WHITE); conversationPanel.addMouseMotionListener(this); + conversationPanel.addMouseWheelListener(this); + contentPane.add(conversationPanel, BorderLayout.CENTER); setContentPane(contentPane); @@ -134,7 +138,16 @@ public class MaJFrame extends JFrame implements MouseMotionListener{ @Override public void mouseMoved(MouseEvent e) { } - - + + + + @Override + public void mouseWheelMoved(MouseWheelEvent e) { + if (e.getWheelRotation() < 0) { + up(20); + } else { + down(20); + } + } }