小编Rya*_*rks的帖子

自定义边框未显示控件的JFrame

我正在尝试创建自己的自定义边框,我通过覆盖JFrame中的paint函数来完成此操作.我遇到的问题是在构造函数之后调用paint,导致它在我的控件上绘制窗口.因此,只有当我碰巧点击它在JFrame中的位置时才会出现我的表格.我想知道是否有一种方法可以在构造函数之前使paint函数发生,或者是否有更好的方法来创建自定义边框.这是我的代码:

public class GuiMain extends JFrame {

    int posX=0, posY=0;

    JTable serverList;

    public GuiMain()
    {
        this.setUndecorated(true);
        this.setLayout(new GridBagLayout());

        serverList = new JTable(Variables.servers, Variables.serversHeader);
        add(serverList);

        this.addMouseListener(new MouseAdapter(){
            public void mousePressed(MouseEvent e)
            {
                posX = e.getX();
                posY = e.getY();
            }
        });
        this.addMouseMotionListener(new MouseAdapter(){
            public void mouseDragged(MouseEvent evt)
            {
                if(posY <= 20) {
                    setLocation(evt.getXOnScreen()-posX, evt.getYOnScreen()-posY);
                }
            }
        });
    }

    public void paint(Graphics g)
    {
        g.setColor(new Color(100, 100, 100));
        g.fillRect(0,  0, Main.width, Main.height);

        g.setColor(new Color(70, 70, 70));
        g.fillRect(0,  0, Main.width, 20);
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!谢谢!

java swing border paint jframe

4
推荐指数
1
解决办法
1228
查看次数

C++ Draggable无边框窗口问题

我正在设计一个自定义窗口边框,我在顶部放置一个位图作为拖动条.这是有效的,但是当我试图拖动窗口时,它将自己置于两个不同的区域,并在两者之间闪烁.这是一个视频:

http://dl.dropbox.com/u/85700751/capture-1.avi

当窗口闪烁时,我正试图拖动它(由于某种原因它没有显示我的光标).这是我的拖动代码:

case WM_LBUTTONDOWN: {
    int posX = LOWORD(lParam);
    int posY = HIWORD(lParam);
    if((isDragging==false)&&(posX>4)&&(posX<470)&&(posY>4)&&(posY<24))
        {
            isDragging = true;
            ClipCursor(rect);
            oldCursorX = posX;
            oldCursorY = posY;
        }
    }
    break;
case WM_LBUTTONUP: {
    isDragging = false;
    ClipCursor(NULL);
    }
    break;
case WM_MOUSEMOVE: {
        if(isDragging)  {
            SetWindowPos(hWnd, NULL, LOWORD(lParam)-oldCursorX, HIWORD(lParam)-oldCursorY, 500, 500, NULL);
        }
    }
    break;
Run Code Online (Sandbox Code Playgroud)

c++ winapi visual-studio-2012

3
推荐指数
1
解决办法
1207
查看次数

查找整数的倒数

我有一个介于0和1之间的浮点数,我用它来创建一个0到255之间的整数.我可以完成这个

integer = float * 255;
Run Code Online (Sandbox Code Playgroud)

如果我希望0为0而1为255,那么这可以正常工作,但是我希望它完全相反!我想它如果1可能是0和255可能是1.有没有办法做到这一点?

提前致谢!

java math

1
推荐指数
1
解决办法
139
查看次数

标签 统计

java ×2

border ×1

c++ ×1

jframe ×1

math ×1

paint ×1

swing ×1

visual-studio-2012 ×1

winapi ×1