我已经使用Swing
了很长时间并开始进入JavaFX
。我无法弄清楚如何创建一个可调整大小的绘画区域。
我想要的是等同于Swing
代码:
JPanel parent = new JPanel(new BorderLayout());
JPanel drawArea = new JPanel(){
protected void paintComponent(Graphics g)
{
g.setColor(Color.white);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.red);
g.drawLine(0, 0, getWidth(), getHeight());
g.drawLine(getWidth(), 0, 0, getHeight());
}
};
parent.add(drawArea, BorderLayout.CENTER);
每当您更改其大小时,这将很好地扩展以适合父容器。
我试图在JavaFX
中使用BorderPane
作为内部控件,使用Canvas作为内部控件,基于此处的代码:
http://www.javacodegeeks.com/2014/04/javafx-tip-1-resizable-canvas.html
这可以通过在任务更改时将画布设置为父组件的维度来实现 - 但是,这可以防止画布在父级应该缩小时缩小,因为父级大小现在包括其子画布大小。所以这个例子的唯一方法就是如果我的画布直接将舞台用作父级。设置它似乎也需要做很多工作。
有没有办法得到一个简单的JPanel
- 类似的组件,它会自动适合它的父级,让我抓住一个resize事件,以便重新绘制它?