http://www.yukun.info/blog/2009/02/java-swing-jcomponent-drawing-line.html
の他のやり方。といってもInsetとJFrame#setSizeを使わずにJComponent#setPreferredSizeとJFrame#packを使うようにしただけ
package linecomp; import java.awt.Color; import java.awt.Graphics; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JComponent; import javax.swing.SwingUtilities; public class LineComp extends JComponent{ public static void main(String[] args){ Runnable myGUI = new Runnable(){ public void run(){ JFrame win = new JFrame("LineComponent"); LineComp comp = new LineComp(); comp.setPreferredSize(new Dimension(300, 300)); win.add(comp); win.pack(); win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); win.setVisible(true); } }; SwingUtilities.invokeLater(myGUI); } @Override public void paintComponent(Graphics g){ int width = getWidth(); int height = getHeight(); g.setColor(getBackground()); g.fillRect(0, 0, width, height); g.setColor(Color.RED); g.drawLine(0, 0, width, height); } }