我正在使用NetBeans GUI编辑器创建一个应用程序,我希望在其中有一个JSplitPane,其顶部组件将Canvas在a中JScrollPane,而底部组件将是a JTextArea或类似的东西.
当我向下拉分隔器,从而增加顶部组件的大小时,一切似乎都调整得很好.
当我试图向上推动分频器时出现问题:分频器似乎在Canvas(也可能在它下面JScrollPane)下方.
我试图首选/最小/最大的尺寸的各种组合JScrollPane和Canvas,但似乎没有任何工作.
这是Netbeans生成的代码的一部分,可能与手头的问题有关:
jSplitPane1 = new javax.swing.JSplitPane();
jScrollPane1 = new javax.swing.JScrollPane();
canvas1 = new java.awt.Canvas();
jTextField1 = new javax.swing.JTextField();
jSplitPane1.setDividerLocation(300);
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jScrollPane1.setViewportView(canvas1);
jSplitPane1.setTopComponent(jScrollPane1);
jTextField1.setText("jTextField1");
jSplitPane1.setRightComponent(jTextField1);
Run Code Online (Sandbox Code Playgroud)
由于这是我的第一个问题,我不允许在问题中嵌入图像,因此我将发布链接:

红色箭头表示分隔线的位置.
在此先感谢您的时间.
我正在寻找一种从宽度推断 Java AWT 字体大小的方法。例如,我知道我想在 100 像素内写出“hello world”。我知道我在 style 中使用字体“Times”,Font.PLAIN并且我想获得最适合我给定的 100 像素宽度的字体大小。
我知道我可以在循环中计算它(类似于while(font.getSize() < panel.getWidth()),但老实说,我觉得它不是很优雅。
有没有办法让JLabel的文字伸展到100%的高度?当组件的大小也发生变化时,我需要更新文本.
我看到一些可行的解决方案; 它涉及计算和设置字体大小,使其显示正确的高度.我还必须添加监听器,以便在高度改变时使其响应,我不知道我应该在哪里做到这一点.
我希望有一个更好的布局管理器解决方案,但找不到任何东西.
有任何想法吗?
我正在尝试使用swing制作一个RPG(是的,这是愚蠢的我同意,但我这样做是为了学习而不是实际的工作产品).目前我正在研究每个角色的统计数据.
我有一个JPanel,我想画一条线.
我的意图是有类似的东西

左侧是JPanel,它有两个组件,表1和JLabel.右边也是JPanel,它有自己的元素,但这是另一个故事.
我的问题是,我想创建一个只有图像的jpanel,该图像将是两条相对于表格中所选元素的角线.
但不幸的是,我不知道如何在JLabel上绘制自定义图像.任何人都可以建议一种在JLabel上绘制自己的线条和一切的方法吗?我已经看了很多问题,但是他们展示了如何将已创建的图像绘制到JLabel上,但我会自己绘制自己的东西(只有两行).
我想在我的网格中为我的图形标记我的哈希标记,但是当我使用偶数字体大小1时,这是大的方法!有没有办法让字体大小小于1?我错过了我编码的方法吗?
这是生成网格并尝试在哈希上添加标签的代码.
for (double k = myStart1; k <= myEnd1; k = k + (myEnd1 - myStart1) / 8) {
g2.setColor(Color.BLACK);
g2.draw(new Line2D.Double(k, (max - min) / 60, k, -(max - min) / 60));
String labelx=String.valueOf(k);
Float xCo=Float.parseFloat(Double.toString(k));
g2.setFont(new Font("SansSerif",Font.PLAIN,1));
g2.drawString(labelx, xCo, 0);
}
Run Code Online (Sandbox Code Playgroud)
这是x ^ 2生成的图表的屏幕截图.
java ×5
swing ×4
graphics2d ×2
jlabel ×2
awt ×1
font-size ×1
fonts ×1
java-2d ×1
jpanel ×1
jscrollpane ×1
jsplitpane ×1