Add limit top & bottom, add mousewheel

This commit is contained in:
Etienne VIENOT 2019-03-22 16:15:52 +01:00
parent 0ece74282d
commit 48460e53f1
2 changed files with 20 additions and 4 deletions

View File

@ -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<Message> 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) {

View File

@ -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);
@ -137,4 +141,13 @@ public class MaJFrame extends JFrame implements MouseMotionListener{
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if (e.getWheelRotation() < 0) {
up(20);
} else {
down(20);
}
}
}