相关疑难解决方法(0)

听众的哪一个适合可见性的JPanel被改变了

是否有一些规则,或好/坏经验AncestorListener,ComponentListenerHierarchyListener听取变化的可见性JPanelJComponents

其中一个比其他人更好还是更安全?我特别想知道何时以及如何JPanel/ JComponent隐藏.

请注意以下代码包含不正确的Swing规则,例如Thread.sleep(int)在这种情况下使用,允许我Listeners在Swing GUI中打印出正确的顺序

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.HierarchyEvent;
import java.awt.event.HierarchyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;

public class CardlayoutTest extends JFrame {

    private static final long serialVersionUID = 1L;
    public CardLayout card = new CardLayout();

    public CardlayoutTest() {
        JPanel pnlA = new JPanel(new BorderLayout());
        pnlA.add(new JButton("A"), BorderLayout.CENTER);
        JPanel pnlB = new JPanel(new …
Run Code Online (Sandbox Code Playgroud)

java swing jcomponent listener jpanel

23
推荐指数
1
解决办法
2万
查看次数

JPanel在益智游戏中没有更新

我有一个简单的益智游戏.有一个由16块瓷砖组成的图像(随机放置).图像存储在一个数组中,当游戏启动时,它们被添加到主JPanel中.

替代文字http://img248.imageshack.us/img248/7403/27632947.gif

游戏以这种方式工作:每个图像都有"地点"和"数字"."放置"是网格上的当前位置(正确与否),"数字"是图像的所需位置.当用户点击图像时,会检查其"地点"和"数字"属性.如果他们匹配什么都没发生 如果没有游戏检查当前是否有任何图像在内存中.如果没有,则存储该图像的"位置"和"数字".如果内存中有一些图像,则使用存储图像的"数字"检查当前单击的图像的"plac".当他们匹配时 - 他们的位置被交换.这部分工作正常.但是现在,我正在使用更新的图像在我的JPanel上调用addComponent方法,而且没有任何反应.不该"

包奖金;

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

class Puzzle extends JPanel implements ActionListener {
    private int selected_nr=-1;
    private int selected_pl=-1;
    private boolean memory=false;
    private static Img[] images;

    public Puzzle(){
        JFrame f = new JFrame("Smile");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(this);
        f.setSize(252,252);
        f.setVisible(true);

        setLayout(new GridLayout(4, 4));
        images = new Img[16];
        int[] buttons = new int[16];

        for(int i=0; i<16; i++){
            buttons[i] = i;
        }

        int rand;
        int temp;
        Random random;

        random = new Random(System.currentTimeMillis());
        for (int i = …
Run Code Online (Sandbox Code Playgroud)

java swing

6
推荐指数
2
解决办法
6046
查看次数

标签 统计

java ×2

swing ×2

jcomponent ×1

jpanel ×1

listener ×1