我只是一个初学者,正在学习JFrame
、JLabel
和JButton
。我写了一个简单的代码,按下按钮后你应该会看到某个标签。当我在IntelliJ或Eclipse中运行代码时,一切都很好,但是在将其导出为JAR并打开后,文本和图像大小会发生变化。
public class MyFrame extends JFrame implements ActionListener {
File file;
AudioInputStream audioStream;
Clip clip;
JButton button;
JLabel label;
MyFrame() throws LineUnavailableException, UnsupportedAudioFileException, IOException {
file = new File("C:/Users/uchak/IdeaProjects/New folder/fail.wav");
audioStream = AudioSystem.getAudioInputStream(file);
clip = AudioSystem.getClip();
clip.open(audioStream);
ImageIcon icon = new ImageIcon("gilaki.png");
ImageIcon icon2 = new ImageIcon("nini.png");
label = new JLabel();
label.setText("nini debili xar :)");
label.setBackground(new Color(150, 10, 10));
label.setForeground(new Color(245, 215, 66));
label.setBounds(450, 75, 600, 600);
label.setVisible(false);
label.setIcon(icon2);
label.setHorizontalTextPosition(JLabel.CENTER);
label.setVerticalTextPosition(JLabel.TOP);
label.setFont(new Font("", Font.PLAIN, 50));
button = new JButton();
button.setText("daachire da moxdeba saocreba");
button.setBounds(500, 150, 400, 300);
button.setVisible(true);
button.addActionListener(this);
button.setFocusable(false);
button.setIcon(icon);
button.setHorizontalTextPosition(JButton.CENTER);
button.setVerticalTextPosition(JButton.TOP);
button.setBackground(Color.BLACK);
button.setForeground(Color.red);
button.setFont(new Font("", Font.PLAIN, 20));
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.setSize(1920, 1080);
this.setLayout(null);
this.add(button);
this.add(label);
this.getContentPane().setBackground(new Color(100, 20, 200));
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
label.setVisible(true);
button.setVisible(false);
this.getContentPane().setBackground(Color.BLACK);
clip.start();
}
}
}
如果你想做的只是改变JLabel
字体的大小和样式,那么替换这行代码
label.setFont(new Font("",Font.PLAIN,50));
用这个
label.setFont(label.getFont().deriveFont(Font.PLAIN, 50.0f));
类似地,JButton
。
button.setFont(button.getFont().deriveFont(Font.PLAIN, 20.0f));
基本上我有两个账户,SSPUserInput和SSPViewer。我想在SSPUserInput类中按下一个按钮,在SSPViewer中更改一个JLabel名称。这基本上是一个石头剪刀布游戏。这是我第一次在这里发帖,如果我做错了什么,我很抱歉。
是否可以创建一个带有右对齐图标和文本的,图标在右边,像这样: 我见过这个问题,但这真的是最好的方法吗?
我对Java真的很陌生,我想做一个简单的GUI,上面有一个按钮,当你点击它的时候就会有价值,我在YouTube上学习了这个教程。一切都很顺利。但有一点没有,即文本的结尾从一个数字()变为。手动调整窗口的大小会使数字返回,所以我尝试在它启动时在代码中调整字体、窗口、按钮和标签的大小,这确实起作用,但仍然会遇到同样的问题。 这是我的按钮代码: ...我相信它会称之为: 我在其他问题上试过一些其他的解决
我有png图标,并将它们用作/中的图标 问题是,运行时显示的图像比原始图标大,而且由于这种大小调整,它非常难看。 下面是一个例子: 原始图标(左)以及它如何在中呈现(右) 这个简单示例的源代码如下: 这是预期的吗?如果没有,我如何避免这种情况?我尝试了很多方法来强制显示图像的大小、按钮等,但无法显示正确的图像。 我测试过各种尺寸的图标:16x16、17x17、18x18、19x19、20x20,每
问题内容: 在Java中,由于空间不足而无法显示JLabel的文本时,文本将被截断并在末尾添加“ …”。 如何轻松找出当前JLabel是显示全文还是被截断? 编辑: 我看到有一种方法可以使用来找出文本的大小。但是,此解决方案无法完全回答问题。如果JLabel的文本包含HTML装饰,则还将计算HTML标签的宽度。因此,可能发生的结果是比JLabel的宽度更大,但仍然可以正确显示文本。 有没有办法知道
对不起,我不能上传图片