java中Panel如何添加边框???????

java中Panel如何添加边框???????,第1张

import javax.swing.*

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)

    }

}

可以定义全局变量来保存Graphics。

在组件处于可见的状态下使用getGraphics。代码如下:

import java.awt.Graphics

import 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

  

 }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11566981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存