Hey guys, I'm having problems with something that seems like it should be so much more simple. I just cant get my simple custom JComponent to show up! I'm using Absolute Positioning by choice, and I'm not sure if that could be causing some of the problems. Any advice and or a >solution< is greatly appreciated. Thankss!
(heres my code)
public class XtremePaintballNetwork {
private static JFrame _xpbnWindow;
private static JTextField _chatTextField;
//private static Map _map;
private static Map _map;
public static void main(String[] args) {
// Set up main window
_xpbnWindow = new JFrame("Xtreme Paintball Network");
_xpbnWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
_xpbnWindow.setSize(400, 300);;
//_xpbnWindow.setBackground(Color.white);
//_xpbnWindow.getContentPane().setBackground(Color.white);
//_xpbnWindow.pack();
_xpbnWindow.setVisible(true);
addComponentsToPane();
_xpbnWindow.addComponentListener( new ComponentListener() {
public void componentHidden(ComponentEvent e) {}
public void componentMoved(ComponentEvent e){}
public void componentResized(ComponentEvent e) {
adjustBounds();
}
public void componentShown(ComponentEvent e) {}
});
_xpbnWindow.repaint();
}
private static void addComponentsToPane() {
Container pane = _xpbnWindow.getContentPane();
// Use Absolute Positioning
pane.setLayout(null);
// Create GUI components
_map = new Map();
_chatTextField = new JTextField();
// Add components to pane
pane.add(_map);
pane.add(_chatTextField);
// Calculate and set Bounds
adjustBounds();
}
private static void adjustBounds() {
Container pane = _xpbnWindow.getContentPane();
// Use 'null' layout -> Absolute Positioning
Insets insets = pane.getInsets();
Dimension _windowDimension = pane.getSize();
Dimension _chatDimension = _chatTextField.getPreferredSize();
/*_map.setBounds(0, insets.top, _windowDimension.width - insets.left - insets.right,
_windowDimension.height - insets.top - insets.bottom);*/
_map.setBounds(10, 10, 100, 100);
_chatTextField.setBounds(0, _windowDimension.height - _chatDimension.height - insets.top - insets.bottom,
_windowDimension.width - insets.left - insets.right, _chatDimension.height);
}
}
and here's the simple JComponent class
public class Map extends JComponent{
//@Override
protected void PaintComponent(Graphics g){
super.paintComponent(g);
g.drawLine(0, 0, 70, 70);
g.drawString("string",20,20);
}
}
Basically, my problem is that nothing shows up within my JFrame... :/ Help!
The methods name is paintComponent
. It starts lower case: Link