import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
public class SimpleToolbar extends JFrame {
public static final String FontNames[] = { "Serif", "SansSerif", "Courier" };
protected Font fonts[];
protected JFileChooser fileChooser = new JFileChooser();
protected JToolBar toolBar;
protected JComboBox cbFonts;
protected SmallToggleButton bBold;
protected SmallToggleButton bItalic;
public SimpleToolbar() {
super();
setSize(450, 350);
fonts = new Font[FontNames.length];
for (int k = 0; k < FontNames.length; k++)
fonts[k] = new Font(FontNames[k], Font.PLAIN, 12);
WindowListener wndCloser = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(wndCloser);
createToolBar();
setVisible(true);
}
protected void createToolBar() {
ImageIcon iconNew = new ImageIcon("file_new.gif");
Action actionNew = new AbstractAction("New", iconNew) {
public void actionPerformed(ActionEvent e) {
;
}
};
ImageIcon iconOpen = new ImageIcon("file_open.gif");
Action actionOpen = new AbstractAction("Open...", iconOpen) {
public void actionPerformed(ActionEvent e) {
}
};
ImageIcon iconSave = new ImageIcon("file_save.gif");
Action actionSave = new AbstractAction("Save...", iconSave) {
public void actionPerformed(ActionEvent e) {
}
};
Action actionExit = new AbstractAction("Exit") {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
};
toolBar = new JToolBar();
JButton bNew = new SmallButton(actionNew, "New text");
toolBar.add(bNew);
JButton bOpen = new SmallButton(actionOpen, "Open text file");
toolBar.add(bOpen);
JButton bSave = new SmallButton(actionSave, "Save text file");
toolBar.add(bSave);
ActionListener fontListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
};
toolBar.addSeparator();
cbFonts = new JComboBox(FontNames);
cbFonts.setMaximumSize(cbFonts.getPreferredSize());
cbFonts.setToolTipText("Available fonts");
ActionListener lst = new ActionListener() {
public void actionPerformed(ActionEvent e) {
int index = cbFonts.getSelectedIndex();
if (index < 0)
return;
}
};
cbFonts.addActionListener(lst);
toolBar.add(cbFonts);
toolBar.addSeparator();
ImageIcon img1 = new ImageIcon("font_bold1.gif");
ImageIcon img2 = new ImageIcon("font_bold2.gif");
bBold = new SmallToggleButton(false, img1, img2, "Bold font");
lst = new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
};
bBold.addActionListener(lst);
toolBar.add(bBold);
img1 = new ImageIcon("font_italic1.gif");
img2 = new ImageIcon("font_italic2.gif");
bItalic = new SmallToggleButton(false, img1, img2, "Italic font");
lst = new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
};
bItalic.addActionListener(lst);
toolBar.add(bItalic);
getContentPane().add(toolBar, BorderLayout.NORTH);
}
public static void main(String[] a){
new SimpleToolbar();
}
}
class SmallButton extends JButton implements MouseListener {
protected Border m_raised;
protected Border m_lowered;
protected Border m_inactive;
public SmallButton(Action act, String tip) {
super((Icon) act.getValue(Action.SMALL_ICON));
m_raised = new BevelBorder(BevelBorder.RAISED);
m_lowered = new BevelBorder(BevelBorder.LOWERED);
m_inactive = new EmptyBorder(2, 2, 2, 2);
setBorder(m_inactive);
setMargin(new Insets(1, 1, 1, 1));
setToolTipText(tip);
addActionListener(act);
addMouseListener(this);
setRequestFocusEnabled(false);
}
public float getAlignmentY() {
return 0.5f;
}
public void mousePressed(MouseEvent e) {
setBorder(m_lowered);
}
public void mouseReleased(MouseEvent e) {
setBorder(m_inactive);
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
setBorder(m_raised);
}
public void mouseExited(MouseEvent e) {
setBorder(m_inactive);
}
}
class SmallToggleButton extends JToggleButton implements ItemListener {
protected Border raised;
protected Border lowered;
public SmallToggleButton(boolean selected, ImageIcon imgUnselected,
ImageIcon imgSelected, String tip) {
super(imgUnselected, selected);
setHorizontalAlignment(CENTER);
setBorderPainted(true);
raised = new BevelBorder(BevelBorder.RAISED);
lowered = new BevelBorder(BevelBorder.LOWERED);
setBorder(selected ? lowered : raised);
setMargin(new Insets(1, 1, 1, 1));
setToolTipText(tip);
setRequestFocusEnabled(false);
setSelectedIcon(imgSelected);
addItemListener(this);
}
public float getAlignmentY() {
return 0.5f;
}
public void itemStateChanged(ItemEvent e) {
setBorder(isSelected() ? lowered : raised);
}
}
|