相关疑难解决方法(0)

在Swing GUI中提供空白区域

没有空白区域的GUI显得"拥挤".如何在不借助明确设置组件的位置或大小的情况下提供空白区域?

java swing whitespace layout-manager

158
推荐指数
5
解决办法
4万
查看次数

关闭Java的JFrame退出

我不知道如何使用此代码:

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

使用x按钮关闭程序.

java jframe

50
推荐指数
3
解决办法
17万
查看次数

Swing中使用的框架图标的大小

我们可以使用列表来初始化窗口图标Window.setIconImages(List<? extends Image>).通常用于a的图标大小有哪些JFrame?

码

此代码将64个不同大小的图像(从16x16,递增2)转换为列表的图标.

import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class FrameIconList {

    public static BufferedImage getImage(int size, Color color) {
        BufferedImage i = new BufferedImage(
                size, size, BufferedImage.TYPE_INT_RGB);

        Graphics2D g = i.createGraphics();

        g.setColor(color);
        g.fillRect(0, 0, size, size);
        g.setColor(Color.BLACK);
        int off = (size>17 ? 3 : 1);
        if (off>1) g.drawRect(0, 0, size-1, size-1);
        g.drawString("" + size, off, size-off);

        g.dispose();

        return i;
    }

    public static void main(String[] args) { …
Run Code Online (Sandbox Code Playgroud)

java icons swing jframe imageicon

29
推荐指数
4
解决办法
1万
查看次数

制作一个强大,可调整大小的Swing Chess GUI

我将如何制作这款可调整大小的Chess GUI?


我们公司的任务是制作国际象棋游戏.它需要在Windows,OS X和Linux/Unix机器上工作,我们选择Java来实现这一点,同时保持一个通用的代码库(便于维护和降低成本).

我的任务是创建GUI.用户设计团队已经清除了以下规范.与客户.

国际象棋比赛(国际象棋冠军)将有力量调整大小和直接,它包括:

  • 顶部的工具栏,带有UI组件:
    • New 按键
    • Save 按键
    • Restore 按键
    • Resign 按键
    • 用于向玩家提供消息的标签.

在游戏的左侧,我们需要一个保留供将来使用的区域,它可能包括以下内容:

  • 捕获的碎片列表
  • 促销典当时选择件的选择器
  • 游戏统计
  • 提示等

客户和逻辑团队仍在解决这方面的细节.因此,暂时只需使用包含?文本的标签进行标记即可.

GUI的其余部分将由棋盘本身组成.它将有:

  • 国际象棋棋盘的主要区域.如果用户指向棋子,它应该显示带边框的焦点.它也应该是键盘可访问的.客户将提供多个棋子(各种尺寸,样式和颜色)的精灵表,以允许用户改变游戏的外观.
  • 棋盘将有标签指示列(从左到右:A,B,C,D,E,F,G和H)和行(从上到下:8,7,6,5,4,3,2) &1).
  • 国际象棋棋盘和列/行标签将以1px黑色边框为边界,周围有8px填充.
  • 随着玩家增加游戏的大小,棋盘应保持正方形,否则填充可用空间.
  • 国际象棋棋盘后面的背景颜色应该是赭色,但在下面的模型中,我们将棋盘背后的区域设为绿色,以突出调整大小的行为.

在游戏开始之前,最小尺寸的国际象棋冠军

在游戏开始之前,ChessChamp以最小尺寸

激活新游戏按钮后,最小尺寸的国际象棋冠军

激活新游戏按钮后,最小尺寸的国际象棋冠军

国际象棋冠军比最小尺寸更宽

ChessChamp比最小尺寸拉伸得更宽

国际象棋冠军比最小尺寸高

国际象棋冠军比最小尺寸高

java user-interface swing layout-manager

25
推荐指数
2
解决办法
3万
查看次数

设置JFrame位置的最佳做法

我有一个(有点哲学)问题相对于Swing,或者一般的GUI编程.是否有关于在何处定位JFrame应用程序中使用的实例的公认最佳实践?

  1. 第一帧和主框架应该放在哪里?总是在中心(setLocationRelativeTo(null))?
  2. 儿童应该在哪里JFrame找到?相对于它的父母JFrame,在屏幕的中心,我们想要的任何地方?

我一直认为有一些最好的做法,有点像这样的"GUI圣经",我错了,我应该(喘气)任意决定做什么?

java user-interface swing jframe

18
推荐指数
2
解决办法
3万
查看次数

如何在推送JButton时关闭GUI

有谁知道如何使jbutton关闭gui?我认为这样System.CLOSE(0);但是没有用.它也可能exitActionPerformed(evt);,但这也不起作用.只需要代码行就可以了.

编辑:别介意的人.答案是System.exit(0);.谢谢你的帮助!

java user-interface swing jbutton

15
推荐指数
3
解决办法
16万
查看次数

JDesktopPane按内容设置的首选大小

我一直试图JDesktopPane通过可调整大小的GUI和滚动窗格来很好地工作,但是我遇到了一些麻烦.似乎除非拖动模式是大纲,否则桌面窗格将不会按预期调整大小(当内部框架被拖动超出桌面窗格的边缘时),因此不会产生滚动条.

在此输入图像描述

我在这个来源做一些非常愚蠢的事吗?我错过了一个更好的方法吗?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class MDIPreferredSize {

    public static void main(String[] args) {
        Runnable r = new Runnable() {

            @Override
            public void run() {
                final JDesktopPane dt = new JDesktopPane() {

                    @Override
                    public Dimension getPreferredSize() {
                        Dimension prefSize = super.getPreferredSize();
                        System.out.println("prefSize: " + prefSize);
                        // inititialize the max to the first normalized bounds
                        Rectangle max = getAllFrames()[0].getNormalBounds();
                        for (JInternalFrame jif : this.getAllFrames()) {
                            max.add(jif.getNormalBounds());
                        }
                        System.out.println("maxBounds(): "
                                + max); …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane jdesktoppane preferredsize

10
推荐指数
1
解决办法
1774
查看次数

我可以在显示之前获得正确的JComponent大小吗?

何时计算JComponent的大小?在屏幕上显示之后或之前?如果我.getSize()之前发送消息.setVisible(true),它会给我正确答案吗?谢谢

java swing jcomponent

8
推荐指数
4
解决办法
2599
查看次数

如何在Java中设置文本字段的高度和宽度?

我试图让我的JTextField填充宽度并为其设置高度但仍然失败.我尝试添加代码setPreferredSize(new Dimension(320,200));但仍然失败.有什么方法可以让我的JTextField填充宽度并将高度设置为200或其他什么?

java swing jtextfield jcreator

8
推荐指数
3
解决办法
12万
查看次数

按钮和文本字段不会显示在Java中

对于学校,我必须在一个按钮和两个文本区域内制作一个JFrame.无论你在Textfield中放置什么,当按下按钮时,必须进入文本字段2.当我运行程序时,我得到了代码,我应该看到textfields和按钮.无论出于何种原因,它都没有.

我到目前为止:

package helloworld;

import javax.swing.*;
import java.awt.event.*; 

    public class HelloWorld extends JFrame {

        public static void main(String[] args) {

             JFrame frame = new HelloWorld();
             frame.setSize(400, 400);
             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             frame.setTitle("Hello World Button App");

             JPanel panel = new JPanel();
             frame.setContentPane(panel);
             fram.setVisible(true);
         }
       }

       class panel extends JPanel {

          public JButton btn1 = new JButton("Klick!");
          public JTextField txt1 = new JTextField(10);
          public JTextField txt2 = new JTextField(10);

          public panel() {
               add(btn1);
               add(txt1);
               add(txt2);
            }
          }
Run Code Online (Sandbox Code Playgroud)

我还不能发布图片,但我会在这里提供图片的链接

如果这个问题已经出现,我很抱歉,但我找不到类似的问题.我是编程的新手,所以当我忘记某些内容或写错了内容时,请不要对我大喊大叫!

java swing netbeans jpanel

7
推荐指数
1
解决办法
7228
查看次数