【发布时间】:2015-04-14 03:10:37
【问题描述】:
所以我试图在按钮和文本区域上绘制一种椭圆形。是的,我不能只使用面板或框架是有原因的。
所以按钮和 textarea 上面已经有文本,出于程序的原因需要保留为按钮和 textarea。
到目前为止,我只有一个按钮来显示这个圆圈,但其他按钮都没有显示在圆圈中。并且 textareas 根本没有显示任何圆圈。
到目前为止我的按钮代码:
for (int i = 0; i < (label.length) / 2; i++) {
butt = new JButton(label[i]); // label contains the text on button
butt.setPreferredSize(new Dimension(83, 100));
butt.add(smallPit); //smallpit is the circle graphics
game.add(butt); // game is a panel
// butt.setLayout(null);
}
for (int i = 6; i < label.length; i++) {
butt = new JButton(label[i]);
butt.setPreferredSize(new Dimension(83, 100));
butt.add(smallPit);
game.add(butt);
}
文本区域代码
score2.setBounds(0, 50, 100, 210);
score1.setBounds(700, 50, 100, 210);
score2.add(scorePit);
score1.add(scorePit);
目前的结果:
【问题讨论】:
-
对你为什么要达到这个目的的一些想法也可能允许使用提供不同的方法,你可能会尝试达到相同的结果
-
抱歉,我刚刚意识到我的代码在我的笔记本电脑上,我正在桌面上输入这个问题。
-
score2.setBounds(0, 50, 100, 210);-- 不,永远不要对 JTextArea 这样做,因为这将完全阻止它在需要时滚动,并允许文本愉快地超出该区域的边界。改为设置其列和行属性。我担心您可能会在这里遇到其他 XY 问题。 -
您的直觉可能是使用
null布局并在您的组件上调用setBounds(...)以绝对定位放置它们,但我建议您不要这样做,因为这会导致非常不灵活的 GUI,虽然它们在一个平台上看起来不错,但在大多数其他平台或屏幕分辨率上看起来很糟糕,而且很难更新和维护。相反,您需要学习和学习布局管理器,然后嵌套 JPanel,每个 JPanel 都使用自己的布局管理器来创建在所有操作系统上看起来都不错的令人愉悦且复杂的 GUI。 -
啊,它不需要滚动。它仅用作一种标签。
标签: java swing jbutton jtextarea