TransitMap.java import java.awt.*; import java.awt.event.MouseAdapter; import ja
ID: 3704117 • Letter: T
Question
TransitMap.java
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class TransitMap
{
JButton tooltipButton;
ImageIcon image1 = new ImageIcon("Bala_Hissar.jpg");
JLabel imageLabel;
public TransitMap()
{
JPanel topPanelLevel = new JPanel();
topPanelLevel.setLayout( new BorderLayout() );
JFrame frame = new JFrame("Satellite View");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon image = new ImageIcon("Fortress.jpg");
imageLabel = new JLabel(image);
tooltipButton = new JButton(image);
tooltipButton.setToolTipText("tooltip");
imageLabel.setToolTipText("Bala Hissar Forest");
imageLabel.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
if(x > 610 && x < 660 && y >340 && y < 390){
imageLabel.setIcon(image1);
}
}
});
frame.getContentPane().add(imageLabel);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args)
{
new TransitMap();
}
}
How to make make it smaller and add scroll pane
Explanation / Answer
Here is your solution:
TransitMap.java
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class TransitMap {
JButton tooltipButton;
ImageIcon image1 = new ImageIcon("Bala_Hissar.jpg");
JLabel imageLabel;
public TransitMap() {
JPanel topPanelLevel = new JPanel();
topPanelLevel.setLayout(new BorderLayout());
JFrame frame = new JFrame("Satellite View");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon image = new ImageIcon("Fortress.jpg");
imageLabel = new JLabel(image);
tooltipButton = new JButton(image);
tooltipButton.setToolTipText("tooltip");
imageLabel.setToolTipText("Bala Hissar Forest");
imageLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
if (x > 610 && x < 660 && y > 340 && y < 390) {
imageLabel.setIcon(image1);
}
}
});
frame.getContentPane().add(new JScrollPane(imageLabel));
frame.setSize(400, 400);
frame.setVisible(true);
}
public static void main(String[] args) {
new TransitMap();
}
}
Explanation:-
Just remove the frame.pack(); and modify the "frame.getContentPane().add(imageLabel);" with "frame.getContentPane().add(new JScrollPane(imageLabel));" and add frame.setSize(400, 400); for size adjustment.
Whenever you call pack method it'll auto adjust the frame based on content size in panel.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.