小编Dav*_*amp的帖子

Windows重叠时会擦除JFrame的内容

我使用JFrame创建并显示一个窗口,并将其设置为非常基本的属性.

public FrameVertices( String sTitle, Graph mMap, int iMul ) {
    super( sTitle );

    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    setSize ( 300, 300 );
    setLocation ( 600, 300 );
    setVisible ( true);

    this.iMul = iMul;
    this.gGraph = mMap;
}
Run Code Online (Sandbox Code Playgroud)

然后我使用paint()方法在窗口内绘制一些东西.

问题是,当其他一些窗户覆盖我JFrame然后揭开它时,它的内容JFrame不会被重新绘制 - 除非我调整大小或最小/最大JFrame.

我错过了什么吗?

java swing jframe

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

Java Swing:为什么必须调整框架大小,以便显示组件已添加

我有一个简单的Swing GUI.(而且不仅如此,我编写的所有swing GUI).当它运行时,除了空白屏幕之外它不会显示任何内容,直到我调整主框架的大小,所以每个组件都再次绘制,我可以显示它们.

这是我的简单代码:

public static void main(String[] args) {
        JFrame frame = new JFrame("JScroll Pane Test");
        frame.setVisible(true);
        frame.setSize(new Dimension(800, 600));

        JTextArea txtNotes = new JTextArea();
        txtNotes.setText("Hello World");
        JScrollPane scrollPane = new JScrollPane(txtNotes);
        frame.add(scrollPane);
}
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:当我开始这个课时,框架会出现我添加的所有组件,直到我调整框架大小.

谢谢 :)

java layout swing jframe jscrollpane

4
推荐指数
2
解决办法
8479
查看次数

灵气的外观和感觉不可用

我在java中的netbeans 7.2中创建了一个gui应用程序.我在JFrame那里创造了一个.在自动生成的代码中设置为nimbus外观.但我的框架看起来不像雨云.

所以我调试代码,发现nimbus在返回的数组中不可用getInstalledLookAndFeels().

那么我该怎么做才能安装灵气的外观和感觉呢?JDK 1.6用于编译代码.

java swing look-and-feel nimbus

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

Java:SimpleDataFormat在解析时抛出异常

我使用SimpleDataFormat多年了.我从来没有得到这个Exception

程序在下面,我从互联网上得到了一个例子的代码:

    public static void main(String[] args) {
    // Make a new Date object. It will be initialized to the
    // current time.
    Date now = new Date();

    // Print the result of toString()
    String dateString = now.toString();
    System.out.println(" 1. " + dateString);

    // Make a SimpleDateFormat for toString()'s output. This
    // has short (text) date, a space, short (text) month, a space,
    // 2-digit date, a space, hour (0-23), minute, second, a space,
    // short timezone, …
Run Code Online (Sandbox Code Playgroud)

java simpledateformat

3
推荐指数
1
解决办法
151
查看次数

如何使用单个滚动条滚动两个或更多JTable?

如何使用一个滚动JScrollPane来移动另一个或多个滚动JScrollPane

例如:

我有三个JTable独立的JScrollPanes.我想滚动窗格绑定到彼此.

如果我将使用一个 - 另一个将以相同的方式滚动.

某种Listener我无法找到的?

任何sugestions?

最好的祝福.

java swing jtable jscrollpane

3
推荐指数
1
解决办法
3989
查看次数

调整 JLayeredPane 图层的大小

我在尝试使用JLayeredPane.

我走了这么远:

无侧板

(希望你能看到方块G6在标签上有一个绿色边框,显示哪个方块被选中)

但是当我将我的 2 SidePanels添加到我的ChessBoard面板,然后在顶部有另一层标签应该完全覆盖每个板块但它没有:

带侧板

如您所见,围绕块的绿色边框G2已关闭。

当我将SidePanels添加到sChessBoard并将其添加到底层并将其大小设置为 600x600时,我已将其缩小到明显的范围,然后添加顶层,它是将完全适合块的标签ChessBoard,以及绿色边框围绕选定的JLabel(以及下方的ChessBoard方块 [黑色或白色])绘制,由于SidePanels 减少了棋盘的实际大小为 600x600,因此它偏离中心绘制,现在它将是600-sp1.getWidth()x 600-sp2.getHeight()。我尝试设置顶层的边界和首选大小来补偿它,但似乎没有用。任何帮助表示赞赏谢谢:

ChessBoardTest.java:

import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.HashMap;
import javax.swing.*;
import javax.swing.border.BevelBorder;

public class ChessBoardTest {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {

                Dimension boardSize = new Dimension(600, 600);

                JFrame frame = new …
Run Code Online (Sandbox Code Playgroud)

java swing jlayeredpane jlayer java-7

3
推荐指数
1
解决办法
2174
查看次数

彩绘JPanel不会出现在JFrame中

当我运行我的代码,我希望看到一个JPanel在我JFrame,但没有显示出来.我在框架中有一个按钮,它出现了.但是JPanel没有出现,我甚至用红色着色.这是我的代码JPanel:

import java.awt.*;
import javax.swing.JPanel;
public class graphic extends JPanel {
    private static final long serialVersionUID = -3458717449092499931L;
    public Game game;
    public graphic(Game game){
    this.game = game;
    this.setPreferredSize(new Dimension(400,400));
    this.setBackground(Color.RED);
}
public void paintComponent(Graphics g){
    for (Line l:game.mirrors){
        g.setColor(Color.BLACK);
        g.drawLine(l.start.x, l.start.y, l.end.x, l.end.y);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我的JFrame代码:

import java.awt.Container;
import java.awt.event.*;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.*;
public class Viewer implements ActionListener {
public JFrame frame;
public JButton drawShoot;
public boolean draw; …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jframe paintcomponent

3
推荐指数
1
解决办法
2470
查看次数

从C驱动器加载Java代码中的映像

我是Java新手.我只是想加载图像作为背景JFrame.我想要做的是从C驱动器(这不是我的工作区)获取图像所以我做了什么Board.java:

   ImageIcon i = new ImageIcon("C:/image.png");
   img =i.getImage();
Run Code Online (Sandbox Code Playgroud)

并尝试绘制这样的东西:

    public void paint(Graphics g )
    { 
    super.paint(g);
    Graphics2D  g2d= (Graphics2D) g;
    g2d.drawImage(img, 0, 100, null);
    }
Run Code Online (Sandbox Code Playgroud)

然后我就像这样在我的主要课堂上打电话

   public static void main(String[] args) 
   {
    JFrame frame= new JFrame(" Game") ;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(1200, 365);
    frame.setVisible(true);
    frame.add(new Board());

   }
Run Code Online (Sandbox Code Playgroud)

但我没有显示任何图像,这是合法的添加方式Image吗?

java swing image jframe

3
推荐指数
1
解决办法
2388
查看次数

JButton&Action&KeyBinding

我创建了一个接收Action的JButton类,JButton类包括击键和鼠标监听器,因此我可以根据需要在多个帧中使用相同的类.

我的问题是:按下键时JButton没有得到焦点,但是它正在执行操作.我需要创建一个新的背景或告诉用户按钮执行操作的东西.

有任何想法吗??

这是我的代码:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
import swtdesigner.SwingResourceManager;

public class IButtonSave extends JButton{
    private static final long serialVersionUID = 1L;
    private Action action = null;
    public IButtonSave() {
        super();
        setFocusPainted(true);
        setFocusable(true);

        try {
            jbInit();
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        setMargin(new Insets(0, 0, 0, 0));
        setBorder(new LineBorder(Color.black, 1, true));
        setIconTextGap(0); …
Run Code Online (Sandbox Code Playgroud)

java swing focus key-bindings jbutton

3
推荐指数
1
解决办法
4776
查看次数

对单个线程使用sleep()

我对java很新,并开始使用不同的线程来使用wait()sleep()在我的代码的一部分上运行其他代码.

对于这个项目,我使用JFramejavax.swing.*java.awt.*进口.我想要做的是让其中一个线程(在我的代码中它是主要的,起始线程)允许玩家在tic tac toe board上选择一个空间,当他们点击它时,它将改变图标,并且然后AI将等待1秒钟,然后从我创建的第二个线程回放.

不幸的是,每当我调用ait.sleep(1000)(ait是我的线程名称)时,两个线程都会在完成执行之前等待1秒.谁能告诉我为什么睡一个线程会阻止我的整个执行?

java swing multithreading event-dispatch-thread thread-sleep

3
推荐指数
1
解决办法
6231
查看次数