|
查看: 1855|回复: 10
|
java c 等等初学者问题
[复制链接]
|
|
|
其实 这只是一个突然想到的问题
不太关系到所使用的软体
可是我还是选择了拿java来做个例子
希望前辈们可以指点我
如果我现在做gui / jframe
然后里面有drop down list
改背景颜色的button
告诉user mouse在做什么的title
还有把user 写在text box里面的数字sum起来的button
总共4个function 写这4样东西
分为1,2,3,4 可是 原本的code 不是只可以做一样东西 1了才能到2?
可是我现在想要的是不受限制 1,2,3,4 随时都可以做哪样东西@@
或者这样问看 原本都是我们ask user input, 然后output, 一个接一个的ask user
现在是user选择自己喜欢的按出output @@
user选择自己喜欢的function例如calculate sum 而不需要一个接一个走 也不需要问user要走哪个function
那么这样的code应该怎样个特殊的写法呢?
还是本来就可以的? 只是个突发奇想
因为之前在youtube学的 他的jframe jbutton jdropdown 都是分开project作的
而自己也还没完全明白 所以还无法靠自己把所有结合起来
可是我却有这样的疑问 所以希望得到指点 |
|
|
|
|
|
|
|
|
|
|
发表于 14-5-2010 02:13 AM
|
显示全部楼层
GUI 不熟 , 帮不到你  |
|
|
|
|
|
|
|
|
|
|
发表于 14-5-2010 02:33 AM
|
显示全部楼层
其实 这只是一个突然想到的问题
不太关系到所使用的软体
可是我还是选择了拿java来做个例子
希望前辈们可 ...
qiqimon5566 发表于 14-5-2010 12:39 AM 
你的意思是说在一个frame 里面有一个text field 然后有个4 button ( sum, subtract, multiply, divide), user 可以输入任何一个数目然后按button 做calculation 而不是每次跳input dialog 出来? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-5-2010 07:52 AM
|
显示全部楼层
本帖最后由 qiqimon5566 于 14-5-2010 07:53 AM 编辑
其实应该是我的问题问得不太好
Main function | JButton | JCheckBox | Calculation |
Jbutton change background colour | | | |
Jcheck box change font | | | |
calculation button | | | |
我就是想要把不一样的功能放进不一样的function / class / gui1.java / gui2.java / gui3.java
然后出现在同一个jframe上
然后初学者传统的coding 不都是一行接一行 ask user question 1 -> ask user question 2 -> 然后再output吗?
所以说原本的function 不也是要先run完第一个 才可以run第二个吗?
那么要怎样才能同时间出现这3个function : button, check box, calculate button 在jframe上
并且不需要问user要走哪个function 就可以自由决定 要使用1 还是3 还是2 使用哪个function先后都可以?
还是说都一定要写在同一个function里面才行呢? |
|
|
|
|
|
|
|
|
|
|
发表于 14-5-2010 09:20 AM
|
显示全部楼层
其实应该是我的问题问得不太好
Main function | JButton | JCheckBox | Ca ...
qiqimon5566 发表于 14-5-2010 07:52 AM 
不是很明白, 你意思是不是要弄成1個form有幾個button
操作跟其他軟件一樣, 每個button有自己的function? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-5-2010 09:41 AM
|
显示全部楼层
本帖最后由 qiqimon5566 于 14-5-2010 09:54 AM 编辑
恩恩 大概就那样的意思
可是自己还没作过那样类似的东西
也没看过别人作过==
所以问题问得蛮含糊的
抱歉>.<" |
|
|
|
|
|
|
|
|
|
|
发表于 14-5-2010 09:59 AM
|
显示全部楼层
本帖最后由 mdw1121686 于 14-5-2010 10:01 AM 编辑
回复 6# qiqimon5566
我理解能力差, java swing也差, 不知道你說的是不是這樣?
- import javax.swing.*;
- import java.awt.event.*;
- import java.awt.*;
- public class Tester {
- JButton btn1;
- JButton btn2;
- JFrame frame;
- Container c;
- JTextField txt;
- public static void main(String[] args) {
- Tester cl = new Tester();
- }
- public Tester() {
- frame = new JFrame("Test");
- frame.setSize(400, 400);
-
- btn1 = new JButton("Function1");
- btn2 = new JButton("Function2");
- btn1.addActionListener(new Action1());
- btn2.addActionListener(new Action2());
-
- c = frame.getContentPane();
- c.setLayout(new FlowLayout());
-
- c.add(btn1);
- c.add(btn2);
- frame.setVisible(true);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public class Action1 implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- //Put your function here
- JOptionPane.showMessageDialog(null, "11");
- //Or put your function in Function2()
- Function1();
- }
- }
- public class Action2 implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- //Put your function here
- JOptionPane.showMessageDialog(null, "22");
- //Or put your function in Function2()
- Function2();
- }
- }
- public void Function1(){
- JOptionPane.showMessageDialog(null, "11");
- }
- public void Function2(){
- JOptionPane.showMessageDialog(null, "22");
- }
- }
复制代码
有2種方法, 1個是把code寫在button裡, 另一種方法是把code寫在void裡 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-5-2010 10:08 AM
|
显示全部楼层
本帖最后由 qiqimon5566 于 14-5-2010 10:09 AM 编辑
我是想用multi classes
照你的code看来 好像是全部和gui button有关系的都必须under 一个class
是这样子吗?
我的理解力也不是很好><
你还特地写出来解释 真是太感谢你了
我在想 如果我是要用multi classes分配button用处
那是不是就像你说的要写在button里呢? |
|
|
|
|
|
|
|
|
|
|
发表于 14-5-2010 10:26 AM
|
显示全部楼层
回复 8# qiqimon5566
e..hm..code全部寫出來是因為我也不會java swing, 所以我怕寫錯
喔喔...通常用不同class不是只是為了不同function的, 不過也是必學的
不懂是不是要這樣, 只是寫簡單的出來而已
Tester.java
- import javax.swing.*;
- import java.awt.event.*;
- import java.awt.*;
- public class Tester {
- JButton btn1;
- JButton btn2;
- JFrame frame;
- Container c;
- JTextField txt;
- public static void main(String[] args) {
- Tester cl = new Tester();
- }
- public Tester() {
- frame = new JFrame("Test");
- frame.setSize(400, 400);
-
- btn1 = new JButton("Lecturer");
- btn2 = new JButton("Student");
- btn1.addActionListener(new Action1());
- btn2.addActionListener(new Action2());
-
- c = frame.getContentPane();
- c.setLayout(new FlowLayout());
-
- c.add(btn1);
- c.add(btn2);
- frame.setVisible(true);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public class Action1 implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- Lecturer lec = new Lecturer();
- lec.Say();
- }
- }
- public class Action2 implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- Student stu = new Student();
- stu.Say();
- }
- }
- }
复制代码
Lecturer.java
- import javax.swing.JOptionPane;
- public class Lecturer {
- public void Say(){
- JOptionPane.showMessageDialog(null, "I am lecturer");
- }
- }
复制代码
Student.java
- import javax.swing.JOptionPane;
- public class Student {
- public void Say(){
- JOptionPane.showMessageDialog(null, "I am student");
- }
- }
复制代码 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-5-2010 11:02 AM
|
显示全部楼层
谢谢你的code ^^
就是类似这样的东西 |
|
|
|
|
|
|
|
|
|
|
发表于 14-5-2010 12:15 PM
|
显示全部楼层
|
你可以extend JPanel 然后在main frame 把这些Panel 弄在一起 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|