import java.awt.*
import java.awt.event.*
final class p extends Frame {
final static private Dimension SIZE = new Dimension(800, 600)
public String getTitle() {return "p"}
public Dimension getPreferredSize() {return SIZE}
public Dimension getMinimumSize() {return SIZE}
public Dimension getMaximumSize() {return SIZE}
public Dimension getSize() {return SIZE}
private Panel panel
p() throws HeadlessException {
init()
attachListeners()
doLay()
setVisible(true)
}
private void init() {
panel=new Panel(){
public Dimension getPreferredSize() {
return new Dimension(100,233)
}
public void paint(Graphics g) {
super.paint(g)
Graphics g2=g.create()
g2.setColor(Color.RED)
g2.drawLine(0,0,getWidth(), 0)
g2.drawLine(0,getHeight()-2,getWidth()-2, getHeight()-2)
g2.drawLine(0,0,0,getHeight())
g2.drawLine(getWidth()-2,0,getWidth()-2,getHeight()-2)
g2.dispose()
}
}
panel.setBounds(44,44,111,222)
}
private void attachListeners() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(1)
}
})
}
private void doLay() {
setLayout(null)
add(panel)
pack()
}
public static void main(String... args) {
System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel")
SwingUtilities.invokeLater(p::new)
}
}
在组件处于可见的状态下使用getGraphics。代码如下:
import java.awt.Graphicsimport java.awt.event.KeyEvent
import java.awt.event.KeyListener
import javax.swing.JFrame
import javax.swing.JPanel
public class J extends JFrame implements KeyListener{
Graphics g=null//全局变量
JPanel jp=new JPanel()
public J()
{
add(jp)
setSize(100, 100)
setVisible(true)//必须放在getGraphics之前
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
g=jp.getGraphics()
if(g==null)
{
System.out.println("NULL")
}
this.addKeyListener(this)
}
static public void main(String []agr){
new J()
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("draw")
g.drawLine(0, 0, 50, 50)
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)