マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

他のやり方

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);
    }
}