import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Gundula extends JFrame implements ActionListener
{
private JMenuBar menueLeiste;
private JMenu file, edit, project, language, help;
private JMenuItem file_new, file_open, file_save, file_saveas, file_close, file_make, file_exit;
private JMenuItem edit_undo, edit_redo, edit_cut, edit_copy, edit_paste, edit_delete;
private JMenuItem edit_print, edit_find, edit_findnext, edit_replace;
private JMenuItem project_start, project_startfull, project_procedure, project_single;
private JMenuItem project_block, project_toggle, project_next, project_references;
private JCheckBoxMenuItem language_english, language_deutsch;
private JMenuItem help_homepage, help_forum, help_update, help_info;
private ButtonGroup languageGroup;
public void createMenuEnglish() {
menueLeiste.removeAll();
file = new JMenu("File");
edit = new JMenu("Edit");
project = new JMenu("Project");
language = new JMenu("Language");
help = new JMenu("?");
file_new = new JMenuItem("New Project...");
file_new.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
file_open = new JMenuItem("Open Project...");
file_open.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
file_save = new JMenuItem("Save Project");
file_saveas = new JMenuItem("Save Project As...");
file_close = new JMenuItem("Close Project");
file_make = new JMenuItem("Make Project...");
file_exit = new JMenuItem("Exit");
file_exit.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK));
edit_undo = new JMenuItem("Undo");
edit_undo.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK));
edit_redo = new JMenuItem("Redo");
edit_redo.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.CTRL_MASK));
edit_cut = new JMenuItem("Cut");
edit_copy = new JMenuItem("Copy");
edit_paste = new JMenuItem("Paste");
edit_delete = new JMenuItem("Delete");
edit_print = new JMenuItem("Print...");
edit_print.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK));
edit_find = new JMenuItem("Find...");
edit_find.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F, ActionEvent.CTRL_MASK));
edit_findnext= new JMenuItem("Find Next");
edit_findnext.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0));
edit_replace = new JMenuItem("Replace...");
edit_replace.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_H, ActionEvent.CTRL_MASK));
project_start= new JMenuItem("Start");
project_start.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
project_startfull= new JMenuItem("Start With Full Compile");
project_startfull.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0));
project_procedure= new JMenuItem("Procedurestep");
project_procedure.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F7, 0));
project_single= new JMenuItem("Singlestep");
project_single.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F8, 0));
project_block= new JMenuItem("Blockstep");
project_block.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F9, 0));
project_toggle= new JMenuItem("Toggle Bookmark");
project_next = new JMenuItem("Next Bookmark");
project_references= new JMenuItem("References (Classpath)...");
project_references.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0));
languageGroup = new ButtonGroup();
language_english = new JCheckBoxMenuItem("English");
language_deutsch = new JCheckBoxMenuItem("Deutsch");
language_english.setSelected(true);
language_deutsch.setSelected(false);
help_homepage= new JMenuItem("Homepage");
help_forum = new JMenuItem("Userforum");
help_update = new JMenuItem("Update Gundula");
help_info = new JMenuItem("Info");
createMenuAll();
}
public void createMenuDeutsch() {
menueLeiste.removeAll();
file = new JMenu("Datei");
edit = new JMenu("Bearbeiten");
project = new JMenu("Projekt");
language = new JMenu("Sprache");
help = new JMenu("?");
file_new = new JMenuItem("Neues Projekt...");
file_new.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
file_open = new JMenuItem("Projekt \u00f6ffnen...");
file_open.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
file_save = new JMenuItem("Projekt speichern");
file_saveas = new JMenuItem("Projekt speichern unter");
file_close = new JMenuItem("Alles schlie\u00dfen");
file_make = new JMenuItem("Projekt kompilieren...");
file_exit = new JMenuItem("Beenden");
file_exit.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK));
edit_undo = new JMenuItem("R\u00fcckg\u00e4ngig");
edit_undo.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK));
edit_redo = new JMenuItem("Wiederholen");
edit_redo.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.CTRL_MASK));
edit_cut = new JMenuItem("Ausschneiden");
edit_copy = new JMenuItem("Kopieren");
edit_paste = new JMenuItem("Einf\u00fcgen");
edit_delete = new JMenuItem("L\u00f6schen");
edit_print = new JMenuItem("Drucken");
edit_print.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK));
edit_find = new JMenuItem("Suchen");
edit_find.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F, ActionEvent.CTRL_MASK));
edit_findnext= new JMenuItem("Weitersuchen");
edit_findnext.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0));
edit_replace = new JMenuItem("Ersetzen...");
edit_replace.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_H, ActionEvent.CTRL_MASK));
project_start= new JMenuItem("Starten");
project_start.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
project_startfull= new JMenuItem("Starten, vollst\u00e4ndige Kompilierung");
project_startfull.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0));
project_procedure= new JMenuItem("Prozedur abschlie\u00dfen");
project_procedure.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F7, 0));
project_single= new JMenuItem("Einzelschritt");
project_single.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F8, 0));
project_block= new JMenuItem("Prozedurschritt");
project_block.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F9, 0));
project_toggle= new JMenuItem("Lesezeichen ein/aus");
project_next = new JMenuItem("Zum n\u00e4chsten Lesezeichen");
project_references= new JMenuItem("Projektverweise (Classpath)...");
project_references.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0));
languageGroup = new ButtonGroup();
language_english = new JCheckBoxMenuItem("English");
language_deutsch = new JCheckBoxMenuItem("Deutsch");
language_english.setSelected(false);
language_deutsch.setSelected(true);
help_homepage= new JMenuItem("Homepage");
help_forum = new JMenuItem("Userforum");
help_update = new JMenuItem("Update Gundula");
help_info = new JMenuItem("Info");
createMenuAll();
}
public void createMenuAll() {
language_english.addActionListener(this);
language_deutsch.addActionListener(this);
language.add(language_english);
language.add(language_deutsch);
languageGroup.add(language_english);
languageGroup.add(language_deutsch);
file.add(file_new);
file.addSeparator();
file.add(file_open);
file.add(file_save);
file.add(file_saveas);
file.add(file_close);
file.addSeparator();
file.add(file_make);
file.addSeparator();
file.add(file_exit);
file_exit.addActionListener(this);
edit.add(edit_undo);
edit.add(edit_redo);
edit.addSeparator();
edit.add(edit_cut);
edit.add(edit_copy);
edit.add(edit_paste);
edit.add(edit_delete);
edit.addSeparator();
edit.add(edit_print);
edit.addSeparator();
edit.add(edit_find);
edit.add(edit_findnext);
edit.add(edit_replace);
project.add(project_start);
project.add(project_startfull);
project.add(project_procedure);
project.add(project_single);
project.add(project_block);
project.addSeparator();
project.add(project_toggle);
project.add(project_next);
project.addSeparator();
project.add(project_references);
help.add(help_homepage);
help.add(help_forum);
help.add(help_update);
help.addSeparator();
help.add(help_info);
menueLeiste.add(file);
menueLeiste.add(edit);
menueLeiste.add(project);
menueLeiste.add(language);
menueLeiste.add(help);
setJMenuBar(menueLeiste);
}
public Gundula()
{
super("Gundula");
menueLeiste = new JMenuBar();
createMenuEnglish();
JToolBar tb = new JToolBar();
JButton T_New = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/application_add.png")));
JButton T_Open = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/folder_page.png")));
JButton T_Save = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/disk_multiple.png")));
JButton T_Copy = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/page_copy.png")));
JButton T_Paste = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/page_paste.png")));
JButton T_Print = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/printer.png")));
JButton T_Search = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/page_find.png")));
JButton T_Undo = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/arrow_redo_rotated.png")));
T_Undo.setEnabled(false);
JButton T_Redo = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/arrow_redo.png")));
T_Redo.setEnabled(false);
JButton T_Run = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/resultset_next.png")));
JButton T_Pause = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/jabaco_pause.png")));
T_Pause.setEnabled(false);
JButton T_Stop = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/jabaco_stop.png")));
T_Stop.setEnabled(false);
JButton T_Blue = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/tag_blue.png")));
JButton T_BlueAdd = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/tag_blue_add.png")));
JButton T_BlueRem = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/tag_blue_delete.png")));
JButton T_OutCom = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/jabaco_text_indent.png")));
JButton T_OutComRem = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/jabaco_text_indent_remove.png")));
JButton T_PrevPage = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/bullet_go_flip.png")));
JButton T_NextPage = new JButton(new ImageIcon(getClass().getResource("icons/toolbar/bullet_go.png")));
tb.add(T_New);
tb.add(T_Open);
tb.add(T_Save);
tb.addSeparator();
tb.add(T_Copy);
tb.add(T_Paste);
tb.add(T_Print);
tb.add(T_Search);
tb.addSeparator();
tb.add(T_Undo);
tb.add(T_Redo);
tb.addSeparator();
tb.add(T_Run);
tb.add(T_Pause);
tb.add(T_Stop);
tb.addSeparator();
tb.add(T_Blue);
tb.add(T_BlueAdd);
tb.add(T_BlueRem);
tb.addSeparator();
tb.add(T_OutCom);
tb.add(T_OutComRem);
tb.addSeparator();
tb.add(T_PrevPage);
tb.add(T_NextPage);
JPanel panel=new JPanel();
panel.add(tb);
JPanel tools = new JPanel();
//JToolBar tools = new JToolBar();
tools.setLayout(new GridLayout(13,1));
JToggleButton L_tool01 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool001.png")), true);
JToggleButton L_tool02 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool002.png")), false);
JToggleButton L_tool03 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool003.png")), false);
JToggleButton L_tool04 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool004.png")), false);
JToggleButton L_tool05 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool005.png")), false);
JToggleButton L_tool06 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool006.png")), false);
JToggleButton L_tool07 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool007.png")), false);
JToggleButton L_tool08 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool008.png")), false);
JToggleButton L_tool09 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool009.png")), false);
JToggleButton L_tool10 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool010.png")), false);
JToggleButton L_tool11 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool011.png")), false);
JToggleButton L_tool12 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool012.png")), false);
JToggleButton L_tool13 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool013.png")), false);
JToggleButton L_tool14 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool014.png")), false);
JToggleButton L_tool15 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool015.png")), false);
JToggleButton L_tool16 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool016.png")), false);
JToggleButton L_tool17 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool017.png")), false);
JToggleButton L_tool18 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool018.png")), false);
JToggleButton L_tool19 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool019.png")), false);
JToggleButton L_tool20 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool020.png")), false);
JToggleButton L_tool21 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool021.png")), false);
JToggleButton L_tool22 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool022.png")), false);
JToggleButton L_tool23 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool023.png")), false);
JToggleButton L_tool24 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool024.png")), false);
JToggleButton L_tool25 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool025.png")), false);
JToggleButton L_tool26 = new JToggleButton("", new ImageIcon(getClass().getResource("icons/tools/tool026.png")), false);
tools.add(L_tool01);
tools.add(L_tool02);
tools.add(L_tool03);
tools.add(L_tool04);
tools.add(L_tool05);
tools.add(L_tool06);
tools.add(L_tool07);
tools.add(L_tool08);
tools.add(L_tool09);
tools.add(L_tool10);
tools.add(L_tool11);
tools.add(L_tool12);
tools.add(L_tool13);
tools.add(L_tool14);
tools.add(L_tool15);
tools.add(L_tool16);
tools.add(L_tool17);
tools.add(L_tool18);
tools.add(L_tool19);
tools.add(L_tool20);
tools.add(L_tool21);
tools.add(L_tool22);
tools.add(L_tool23);
tools.add(L_tool24);
tools.add(L_tool25);
tools.add(L_tool26);
ButtonGroup toolsGroup = new ButtonGroup();
toolsGroup.add(L_tool01);
toolsGroup.add(L_tool02);
toolsGroup.add(L_tool03);
toolsGroup.add(L_tool04);
toolsGroup.add(L_tool05);
toolsGroup.add(L_tool06);
toolsGroup.add(L_tool07);
toolsGroup.add(L_tool08);
toolsGroup.add(L_tool09);
toolsGroup.add(L_tool10);
toolsGroup.add(L_tool11);
toolsGroup.add(L_tool12);
toolsGroup.add(L_tool13);
toolsGroup.add(L_tool14);
toolsGroup.add(L_tool15);
toolsGroup.add(L_tool16);
toolsGroup.add(L_tool17);
toolsGroup.add(L_tool18);
toolsGroup.add(L_tool19);
toolsGroup.add(L_tool20);
toolsGroup.add(L_tool21);
toolsGroup.add(L_tool22);
toolsGroup.add(L_tool23);
toolsGroup.add(L_tool24);
toolsGroup.add(L_tool25);
toolsGroup.add(L_tool26);
// tools.setOrientation(SwingConstants.VERTICAL);
// JPanel toolspanel= new JPanel();
// toolspanel.add(tools);
JComponent toolspanel = new JScrollPane(tools);
/* toolspanel.setBorder(new GradientTitleBorder("Tools",
new Color(0x418EDC), new Color(0x6B91B8), Color.WHITE, 18));*/
toolspanel.setBorder(BorderFactory.createTitledBorder("Tools"));
add(toolspanel,BorderLayout.EAST);
// setContentPane(panel);
setLayout(new BorderLayout());
//// JTextArea ta = new JTextArea();
MeineCanvas malflaeche = new MeineCanvas();
malflaeche.setCursor(new Cursor(Cursor.HAND_CURSOR));
add(tb,BorderLayout.NORTH);
add(toolspanel,BorderLayout.WEST);
//// add(ta,BorderLayout.CENTER);
add(malflaeche,BorderLayout.CENTER);
JComponent display1 = new JScrollPane(new MJTree());
/* display1.setBorder(new GradientTitleBorder("Projects",
new Color(0x418EDC), new Color(0x6B91B8), Color.WHITE, 18));*/
display1.setBorder(BorderFactory.createTitledBorder("Projects"));
add(display1,BorderLayout.EAST);
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == language_english) {
createMenuEnglish();
} else if (event.getSource() == language_deutsch) {
createMenuDeutsch();
} else if (event.getSource() == file_exit) {
System.exit(0);
}
}
public class MJTree extends JTree {
public Dimension getMinimumSize() {
return new Dimension(700,700);
}
public Dimension getPreferedSize() {
return getMinimumSize();
}
}
public static void main(String[] args)
{
JFrame rahmen = new Gundula();
WindowListener l = new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
};
rahmen.addWindowListener(l);
rahmen.setSize(750,700);
rahmen.setVisible(true);
}
class MeineCanvas extends Canvas {
public Dimension getMinimumSize() {
return new Dimension(50,50);
}
public Dimension getPreferedSize() {
return getMinimumSize();
}
// setBackground(Color.white);
// setForeground(Color.black);
public void paint(Graphics g)
{
g.setColor(Color.white);
g.fillRect(0,0,5000,5000);
g.setColor(Color.black);
drawFrame(g,400,300);
}
public void drawFrame(Graphics g,int mywidth,int myheight) {
g.setColor(Color.black);
g.drawRect(7,7,mywidth-1,myheight-1);
g.setColor(new Color(239,239,239));
g.fillRect(8,8,mywidth-2,myheight-2);
g.setColor(Color.black);
g.drawRect(0,0,6,6);
g.drawRect(mywidth+8,0,6,6);
g.drawRect(0,myheight+8,6,6);
g.drawRect((int)mywidth/2+4,0,6,6);
g.drawRect(0,(int)myheight/2+4,6,6);
g.fillRect(mywidth+9,myheight+9,5,5);
g.fillRect((int)mywidth/2+5,myheight+9,5,5);
g.fillRect(mywidth+9,(int)myheight/2+5,5,5);
for (int pointy=0; pointy<myheight; pointy+=8)
{
for (int pointx=0; pointx<mywidth; pointx+=8)
{
g.fillRect(pointx+7,pointy+7,1,1);
}
}
// g.drawLine(0,0,mywidth,myheight);
}
}
/**
* Custom border class, paints a titled border using a gradient.
* taken from [url=http://wiki.java.net/bin/view/Projects/CustomBorderDemo]TWiki . Projects . CustomBorderDemo[/url]
*/
public class GradientTitleBorder implements Border {
public Dimension getMinimumSize() {
return new Dimension(700,700);
}
public Dimension getPreferedSize() {
return getMinimumSize();
}
private String title;
private int titleHeight;
private Insets insets = new Insets(titleHeight, 0, 0, 0);
private Color primaryColor;
private Color secondaryColor;
private Color fontColor;
private Color shadowColor;
private int indent = 5;
private Font titleFont;
/**
* Constructtor that assumes a title height.
*
* @param title - string to display
* @param primaryColor - first color of gradient
* @param secondaryColor - second color of gradient (lower)
* @param fontColor - color for the font
*/
public GradientTitleBorder(String title, Color primaryColor,
Color secondaryColor, Color fontColor) {
this(title, primaryColor, secondaryColor, fontColor, 30);
}
/**
* Full option constructor
*
* @param title - string to display
* @param primaryColor - first color of gradient
* @param secondaryColor - second color of gradient (lower)
* @param fontColor - color for the font
* @param titleHeight - height of the title bar
*/
public GradientTitleBorder(String title, Color primaryColor,
Color secondaryColor, Color fontColor, int titleHeight) {
this.title = title;
this.titleHeight = titleHeight;
this.insets = new Insets(titleHeight, 2, 2, 2);
this.primaryColor = primaryColor;
this.shadowColor = primaryColor.darker();
this.secondaryColor = secondaryColor;
this.fontColor = fontColor;
this.titleFont = UIManager.getFont("TitledBorder.font").deriveFont(Font.BOLD);
}
/**
* Creates a GradientTitleBorder with default values.
* @param title
*/
public GradientTitleBorder(String title) {
this(title, Color.BLACK, Color.GRAY, Color.WHITE, 30);
}
/**
*
*/
public Insets getBorderInsets(Component c) {
return insets;
}
/**
*
*/
public boolean isBorderOpaque() {
return false;
}
/**
* paint the border, being carefull to stay inside the insets.
*/
public void paintBorder(Component c, Graphics g, int x, int y,
int width, int height) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
GradientPaint gp = new GradientPaint(x, y, primaryColor, x, y
+ titleHeight, secondaryColor);
g2d.setPaint(gp);
g2d.fillRect(x, y, width, titleHeight);
g2d.setColor(shadowColor);
g2d.drawRect(x, y - 1, width - 1, titleHeight);
g2d.setFont(titleFont);
g2d.setColor(shadowColor);
int titleOffset = (titleHeight / 2) + (c.getFont().getSize() / 2)
- 1;
g2d.drawString(title, x + insets.left + indent + 1, y + titleOffset
+ 1);
g2d.setColor(fontColor);
g2d.drawString(title, x + insets.left + indent, y + titleOffset);
g2d.setColor(shadowColor);
g2d.drawRect(x, y - 1, width - 1, height);
}
}
}