📄 buttondemo.java
字号:
// ButtonDemo.java: Use buttons to move message in a panel
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class ButtonDemo extends JFrame
implements ActionListener
{
// Declare a panel for displaying message
private MessagePanel messagePanel;
// Declare two buttons to move the message left and right
private JButton jbtLeft, jbtRight;
// Main method
public static void main(String[] args)
{
ButtonDemo frame = new ButtonDemo();
// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public ButtonDemo()
{
setTitle("Button Demo");
// Create a MessagePanel instance and set colors
messagePanel = new MessagePanel("Welcome to Java");
messagePanel.setBackground(Color.yellow);
// Create Panel jpButtons to hold two Buttons "<=" and "right =>"
JPanel jpButtons = new JPanel();
jpButtons.setLayout(new FlowLayout());
jpButtons.add(jbtLeft = new JButton());
jpButtons.add(jbtRight = new JButton());
// Set button text
jbtLeft.setText("<=");
jbtRight.setText("=>");
// Set keyboard mnemonics
jbtLeft.setMnemonic('L');
jbtRight.setMnemonic('R');
// Set icons
//jbtLeft.setIcon(new ImageIcon("images/left.gif"));
//jbtRight.setIcon(new ImageIcon("images/right.gif"));
// Set toolTipText on the "<=" and "=>" buttons
jbtLeft.setToolTipText("Move message to left");
jbtRight.setToolTipText("Move message to right");
// Place panels in the frame
getContentPane().setLayout(new BorderLayout());
getContentPane().add(messagePanel, BorderLayout.CENTER);
getContentPane().add(jpButtons, BorderLayout.SOUTH);
// Register listeners with the buttons
jbtLeft.addActionListener(this);
jbtRight.addActionListener(this);
}
// Handle button events
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == jbtLeft)
{
left();
}
else if (e.getSource() == jbtRight)
{
right();
}
}
// Move the message in the panel left
private void left()
{
int x = messagePanel.getXCoordinate();
if (x > 10)
{
// Shift the message to the left
messagePanel.setXCoordinate(x-10);
messagePanel.repaint();
}
}
// Move the message in the panel right
private void right()
{
int x = messagePanel.getXCoordinate();
if (x < getSize().width - 20)
{
// Shift the message to the right
messagePanel.setXCoordinate(x+10);
messagePanel.repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -