在swing下,用窗口分割控件可以解决

解决方案 »

  1.   

    describe your problem clearly.whats the result?
      

  2.   

    package mywork;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    /**
     *主要练习布局和基本的事件
     */public class MyHomeWork extends JFrame implements ActionListener,ListSelectionListener,AdjustmentListener,ItemListener
    {
    MyHomeWork kk;

    JMenuBar jmb=new JMenuBar();
    JMenu fill=new JMenu("文件");
    JMenu therfill=new JMenu("保存");

    String[] ss={"黑体","粗体","斜体"};
    JComboBox box=new JComboBox(ss);

    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
    JPanel p3=new JPanel();
    JPanel p4=new JPanel();
    JPanel p6=new JPanel();
    JPanel p7=new JPanel();
    JPanel p8=new JPanel();
    JPanel p9=new JPanel();
    JPanel p10=new JPanel();
    JPanel p11=new JPanel();

    MyPanel p5=new MyPanel();

    JButton b1=new JButton("显示字体");
    JList list=new JList();
    JScrollPane jsp=new JScrollPane(list);//给列表框加上滚动条

    JLabel jb1=new JLabel("请在文本框中输入文字:");
    JTextField t1=new JTextField(15);
    JButton b2=new JButton("转换");
    Scrollbar js=new Scrollbar(Scrollbar.HORIZONTAL,10,10,10,110);//方向,初位置,滑块的尺寸,最小值,最大值
    Scrollbar js2=new Scrollbar(Scrollbar.VERTICAL,0,10,30,Integer.MAX_VALUE);

    JLabel ser=new JLabel("红色");
    JLabel seg=new JLabel("绿色");
    JLabel seb=new JLabel("蓝色");
    Scrollbar selectred=new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,255);//调整字体颜色的滚动条
    Scrollbar selectgreen=new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,255);
    Scrollbar selectblue=new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,255);


    //Color c=Color.RED;

    Container AA;
    JFrame fm=new JFrame();
    int y,j;

    MyHomeWork(String s,int x1,int x2,int x3,int x4)
    {
    super(s);
    //加菜单
    fill.add("打开");
    fill.add("关闭");
    fill.add(therfill);
    therfill.add("保存");
    therfill.add("另存为...");
    fill.addSeparator();
    fill.add("退出");
    jmb.add(fill);
    this.setJMenuBar(jmb);

    kk=this;
    AA=this.getContentPane();
    AA.setLayout(new BorderLayout());
    //加监听
    list.addListSelectionListener(this);//给列表框增加监听
    b1.addActionListener(this);//为"显示字体按钮"增加监听
    b2.addActionListener(this);//按钮b2增加监听

    js.addAdjustmentListener(this);//横向滚动条
    // js2.addAdjustmentListener(this);//纵向滚动条

    box.addItemListener(this);//下拉列表框
    selectred.addAdjustmentListener(this);
    selectgreen.addAdjustmentListener(this);
    selectblue.addAdjustmentListener(this);
    //b2.setMnemonic(KeyEvent.VK_1);

    b2.addKeyListener(new KeyAdapter()
    {
    public void keyTyped(KeyEvent e)
    {
    if(e.getKeyCode()==10)
    {
    p5.repaint();
    }
    }
    });


    t1.addKeyListener(new KeyAdapter()//文本框的回车事件
    {
    public void keyPressed(KeyEvent e)
    {
    if(e.getKeyCode()==10)
    {
    p5.repaint();
    }
    }
    });


    //面板一
    p1.setLayout(new BorderLayout(3,1));
    p1.add(b1,BorderLayout.NORTH);
    p1.add(jsp,BorderLayout.CENTER);

    p6.setLayout(new BorderLayout(3,1));
    p6.add(selectred,BorderLayout.NORTH);
    p6.add(selectgreen,BorderLayout.CENTER);
    p6.add(selectblue,BorderLayout.SOUTH);
    p1.add(p6,BorderLayout.SOUTH);

    AA.add(p1,BorderLayout.WEST);
    //面板二
    p2.setLayout(new BorderLayout(3,1));
    p3.setLayout(new FlowLayout(FlowLayout.LEFT));
    p3.add(jb1);
    p3.add(t1);
    p3.add(box);
    p3.add(b2);

    p2.add(p3,BorderLayout.NORTH);
    p2.add(js2,BorderLayout.EAST);
    p2.add(p5,BorderLayout.CENTER);
    p2.add(js,BorderLayout.SOUTH);
    AA.add(p2,BorderLayout.CENTER);

    setBounds(x1,x2,x3,x4);
    setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    setVisible(true);

    }

    public void valueChanged(ListSelectionEvent e)//列表框事件
    {
    p5.repaint();

    }

    public void actionPerformed(ActionEvent e)//显示列表框中的字体
    {
    if(e.getActionCommand().equals("显示字体"))
    {
    GraphicsEnvironment env=GraphicsEnvironment.getLocalGraphicsEnvironment();
    String[] fontnames=env.getAvailableFontFamilyNames();
    for(int i=0;i<fontnames.length;i++)
    {
    list.setListData(fontnames);

    }

    }
    if(e.getActionCommand().equals("转换"))//按钮事件
    {
    p5.repaint();
    }

    }

    public void itemStateChanged(ItemEvent e)
    {
    p5.repaint();

    }


    public void adjustmentValueChanged(AdjustmentEvent e)//滚动条事件
    {
    if(e.getSource()==js)//调字体的大小
    {
    p5.repaint();

    }

     if(e.getAdjustable().equals(js2))//调窗体的背景颜色
    {


    System.out.println (js2.getValue());
    p5.setBackground(new Color(j));
    p2.setForeground(new Color(j));

    }
    if(e.getSource()==selectred)
    {
    p5.repaint();

    }
    if(e.getSource()==selectgreen)
    {
    p5.repaint();

    }
    if(e.getSource()==selectblue)
    {
    p5.repaint();

    }


    }
    class MyPanel extends JPanel
    {
    public void paintComponent(Graphics g)
    {
    int a,b,c;
    a=selectred.getValue();
    b=selectgreen.getValue();
    c=selectblue.getValue();

    super.paintComponent(g);//清除背景
    g.setColor(new Color(a,b,c));
    g.setFont(new Font((String)(kk.list.getSelectedValue()),kk.box.getSelectedIndex(),kk.js.getValue()));
    g.drawString(kk.t1.getText(),10,100);
    }
    }
    public static void main(String[] args)
        {
         new MyHomeWork("测试",45,50,800,600);
        
        }

    }
      

  3.   

    多谢 cissy7800了,多亏你忍无可忍了,不然我不知道还要忍多久