我一直在尝试学习按钮,但它拒绝调整大小。按钮1(下面的代码)只占据了整个屏幕。我看到其他帖子的问题是他们没有使用
setMaximumSize();
但是我正在使用它,它仍然不工作!我还没有制作JPanel。这是我的JFrame:
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Frame extends JFrame {
private JButton button1;
private JButton button2;
public Frame()
{
button1 = new JButton("Hello button1");
button2 = new JButton("Hello button2");
button2.setMaximumSize(new Dimension(100,100));
button1.setMaximumSize(new Dimension(100,100));
add(button2);
add(button1);
}
}
我的主要课程简单明了:
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Panel extends JPanel{
public static void main(String args [])
{
Frame frame = new Frame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
我添加了流程布局并将setMaximumSize更改为setPreferredSize。这应该可以解决您的问题。试试这个:
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Frame extends JFrame {
private JButton button1;
private JButton button2;
public Frame()
{
button1 = new JButton("Hello button1");
button2 = new JButton("Hello button2");
button2.setPreferredSize(new Dimension(100,100));
button1.setPreferredSize(new Dimension(100,100));
add(button2);
add(button1);
}
}
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Panel extends JPanel{
public static void main(String args [])
{
Frame frame = new Frame();
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
这是因为框架(' s contentPane
)默认有一个< code>BorderLayout。您将按钮添加到< code>BorderLayout。居中,因此布局管理器忽略< code >最小值-、< code >首选-和< code >最大值。
我只是想让它们并排小一点
为此,您可以使用简单的流布局
。(如果您希望它们以框架为中心,则使用带有网格包布局
的父JPanel
)
如果您想要自定义宽度
例子:
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Example {
public Example() {
JButton button1 = new JButton("Hello button1");
JButton button2 = new JButton("Hello button2") {
@Override
public Dimension getPreferredSize() {
int width = super.getPreferredSize().width;
return new Dimension(width, width);
}
};;
JPanel buttonPanel = new JPanel();
buttonPanel.add(button1);
buttonPanel.add(button2);
JPanel contentPanel = new JPanel(new GridBagLayout());
contentPanel.add(buttonPanel);
JFrame frame = new JFrame();
frame.setContentPane(contentPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Example();
}
});
}
}
问题内容: 我正在创建一个包含特定ImageIcon的JButton。主要问题是原始图标的大小比按钮的大小大得多。结果,当显示按钮时,只能看到部分图标。什么是“调整” ImageIcon大小以使其适合JButton的方法? 问题答案: 来自http://www.coderanch.com/t/331731/GUI/java/Resize- ImageIcon
我似乎无法调整这个iframe的大小 为了简单起见,我没有包括几个包装div,因为它们只用于样式。然而,上面的两个外部div位于flexbox的div中,因此它们是水平显示的,而不是占据整个水平空间。我将内容div设置为100%的宽度,第一个div设置为固定宽度。如你所见,iframe也从硬编码的固定宽度/高度开始。还要注意,重置iframe的src在js函数中起作用,而不是宽度和高度。 谢谢你
我有一个cardlayout JPanel,里面是一个JScrollPane,里面是一个springlayout JPanel。springlayout JPanel从上到下动态添加JPanel,但是当JButtons超出JPanel时,JScrollPane无法容纳额外的内容。此外,尽管添加了内容,springlayout JPanel的高度仍然保持为0。将Resizeable属性设置为true
我有一个matplotlib图,嵌入了一个wxpython框架中,带有一些尺寸标注器。在我加入一个传奇之前,一切都很好,但随后施胶器似乎没有与传奇一起工作。 即使通过在拐角处拖动来调整窗口的大小,主图形也会改变大小,但只会显示图例的边缘。 也就是说,请注意,图例在wxFrame中不可见。 编辑: 对于对我有用的解决方案,我希望它在程序自动绘制图形时看起来很好,这样调整参数可以在程序中硬编码,或者,
问题内容: 我在JFrame的底部中间保留了一个JButton。现在,每当我调整窗口大小时,都应根据新调整大小的窗口重新定位JButton(在新的中心)。谁能告诉我如何做到这一点。提前致谢。 问题答案: Swing中的组件根据框架的布局管理器进行渲染。默认的布局管理器是BorderLayout,它将框架分为五个逻辑部分:北(上),南(下),东(右),西(左)和中心(介于两者之间的所有内容)。默认情
问题内容: 我有一个快速的问题,我不太确定要进行设置。我在其他地方看到过示例,但没有什么比我的情况更具体。我想使用PHP调整图像的大小,以使图像易于阅读,而不仅仅是像使用HTML那样随意拉伸。如果它们的宽度不是250像素,也不是160像素,那么如何调整图片的大小,使其成比例但适合该空间? 谢谢! 问题答案: 好的,下面是我在商店中使用的Image对象。保持规模-需要GD 我在请求时调整图像的大