解决方案 »

  1.   

    这个我也不是很明白
    这个可以加背景颜色,至于你说的颜色变化,不知道怎么搞
    setBackground();加这句就好了
    JButton jbutton=new JButton();
    jbutton.setBackground(Color.blue);
      

  2.   

    你好,我的那个所谓的颜色变化其实就是按钮数组,具体你可以看看下面的代码
    package com.jacket;import java.awt.*;
    import java.awt.event.*;public class LX
    {
    public static void main(String args[])
    {
    Frame f=new Frame("布局");

    CardLayout c1=new CardLayout();
    f.setLayout(c1);

    Button b[]=new Button[7];
    /*
    for(int i=0;i<7;i++)
    {
    b[i]=new Button();
    f.setLayout(new BorderLayout());
    f.add(new Button("North"),BorderLayout.NORTH);
    f.add(new Button("South"),BorderLayout.SOUTH);
    f.add(new Button("West"),BorderLayout.WEST);
    f.add(new Button("East"),BorderLayout.EAST);
    f.add(new Button("Center"),BorderLayout.CENTER);

    f.add(b[i],BorderLayout.CENTER);
    }
    */
    for(int i=0;i<7;i++)
    {
    b[i]=new Button("Page: "+(i+1));

    f.add(b[i],"Page"+(i+1));
    }
    b[0].setBackground(Color.green);
    b[1].setBackground(Color.blue);
    b[2].setBackground(Color.red);
    b[3].setBackground(Color.pink);
    b[4].setBackground(Color.yellow);
    b[5].setBackground(Color.black);
    b[6].setBackground(Color.white);
    f.pack();

    f.setSize(300,300);
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter()
    {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });

    while(true)
    {
    try
    {
    Thread.sleep(500);  
    }catch(Exception e){ }
    c1.next(f);
    }
    }
    }
    我想的是怎么把这个变化放到第一个程序窗口的中间那个按钮上
      

  3.   

    我刚才看了看,你或许可以用一个JPanel,把JPanel放到那个Center上,然后将这个变化的放到那个JPanel中;
    你可以先试试;
      

  4.   

    怎么没人回复了啊?难道这儿的java版块人这么少吗?唉,自己顶一下吧!
    现在虽然有些进展,但还是挺麻烦的,还没弄成功,哪位有空再帮帮忙吧(提供一些思路网址什么的都行啊)
      

  5.   

    java方面的新手,初学者,许多东西都还不太清楚,好吧!我多看看书,看看怎么装吧
      

  6.   

    现在用JAVA做界面的好像不多了吧?似乎都转向web端了
      

  7.   

    嗯,现在javaweb的确是挺火的,不过我们现在是开了java课,刚开始学没多久
      

  8.   

    package _TianXia;import java.awt.*;
    import java.awt.event.*;import javax.swing.JFrame;
    import javax.swing.JButton;
    import javax.swing.JPanel;public class Lian2 {
    public static void main(String[] args) {
    bianhua1 bh = new bianhua1();
    }
    }class bianhua1 {
    Frame f = new Frame("布局"); bianhua1() {
    JFrame jf = new JFrame();// 创建面板
    JPanel jp = new JPanel();// 创建容器 Button b1 = new Button("North");
    Button b2 = new Button("South");
    Button b3 = new Button("West");
    Button b4 = new Button("East");
    // ///////////////////////////////////////////////////////////////
    CardLayout c1 = new CardLayout();
    f.setLayout(c1);
    // b[0].setBounds(5,5,5,5);
    JButton b[] = new JButton[7];
    for (int i = 0; i < 7; i++) {
    b[i] = new JButton("Page: " + (i + 1)); f.add(b[i], "Page" + (i + 1));
    // f.add(b[i],BorderLayout.CENTER);
    } b[0].setBackground(Color.green);
    b[1].setBackground(Color.blue);
    b[2].setBackground(Color.red);
    b[3].setBackground(Color.pink);
    b[4].setBackground(Color.yellow);
    b[5].setBackground(Color.black);
    b[6].setBackground(Color.white);
    f.pack(); f.setLayout(new BorderLayout());
    f.add(b1, BorderLayout.NORTH);
    // b1.setBackground(Color.red);
    f.add(b2, BorderLayout.SOUTH);
    f.add(b3, BorderLayout.WEST);
    f.add(b4, BorderLayout.EAST); f.setSize(300, 300);
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    }); while (true) {
    try {
    Thread.sleep(500);
    } catch (Exception e) {
    }
    c1.next(f);
    }
    }
    }
    这是这个代码的结果——
    请问为什么这个绿色按钮所在区域没有自动的改变颜色?
    有怎样控制按钮数组的大小和位置呢?求教
      

  9.   

    首先这里有两个窗体,即要有两个继承了的JFrame类,创建他们的对象。在第二个图片的那个类的对象的按钮的监听事件处理方法中写关键代码。setBacground()方法。但是该方法的调用者为"第一个图片的类的对象.按钮.setBackground()"。把第一个对象作为参数传递给第二个类的构造方法,这样在事件处理方法中就可以引用了。最后在主方法中创建两个类的对象就行了,注意第二个类new时必需传递第一个类的对象
      

  10.   

    楼主学到计时器和画图了吗,如果没有的话就学习一下我下面的代码吧。
    我的思路是在center域中放一个JPanel,然后把按钮放到这个Panel中,并且把这个Panel设为空布局(这样才可以改变按钮的大小)。设置一个计时器,每隔400ms就改变一次按钮的背景颜色,并且调用repiant方法进行重画,就可以实现颜色的变化了。
    具体代码如下:
    package csdn;import java.awt.*;
    import java.awt.event.*;import javax.swing.JFrame;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    import javax.swing.Timer;public class Lian2 {
    public static void main(String[] args) {
    bianhua1 bh = new bianhua1();
    }
    }class bianhua1 extends JPanel {
    Frame f = new Frame("布局");
    JFrame jf = new JFrame();// 创建面板
    JPanel jp = new JPanel();// 创建容器 Button b1 = new Button("North");
    Button b2 = new Button("South");
    Button b3 = new Button("West");
    Button b4 = new Button("East");
    Button b5 = new Button("Center");
    // 把中间的按钮放到新的JPanel中
    JPanel centerPanel = new JPanel();
    private Color[] color = { Color.green, Color.blue, Color.red, Color.pink,
    Color.yellow, Color.black, Color.white };
    public static int i = 0; bianhua1() { // /////////////////////////////////////////////////////////////// centerPanel.setSize(200, 200);
    centerPanel.setBackground(Color.gray); // 这个Panel设为空布局,以便改变按钮的大小
    centerPanel.setLayout(null);
    b5.setSize(205, 220);
    b5.setLocation(0, 0);
    centerPanel.add(b5);
    b5.setBackground(Color.green);
    ActionListener listener = new Timeprinter();
    Timer t = new Timer(400, listener);
    t.start();
    f.pack(); f.setLayout(new BorderLayout());
    f.add(b1, BorderLayout.NORTH);
    f.add(b2, BorderLayout.SOUTH);
    f.add(b3, BorderLayout.WEST);
    f.add(b4, BorderLayout.EAST);
    f.add(centerPanel, BorderLayout.CENTER);
    f.setSize(300, 300);
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    } class Timeprinter implements ActionListener {
    public void actionPerformed(ActionEvent event) {
    b5.setBackground(color[(++i) % 7]);
    centerPanel.repaint();
    }
    }
    }
      

  11.   

    问题分两个来看
    我的第一个图片是一个窗口,背景颜色不断变化
    很典型的需要用线程不断的设置背景色,然后刷新显示。第二个图片是一个拥有5个按钮的窗口,我想把第一个的颜色变化弄到第二个图片的中间按钮位置
    自定义背景,需要 Override 按钮的 paintComponent 方法,用 Painter 绘制背景.
      

  12.   

    我的第一个的想法是窗口中间那块是ige按钮数组,哲学按钮背景色不同,然后循环的覆盖,以达到目的,不管怎么说,谢谢啊