COD*_*BOY 2 java user-interface
在开发软件期间,我需要执行一个存储为a的语句string.比如说:
String test = " int a; ";
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我想声明一个变量a.
另一个例子是从以下位置执行mysql语句 string:
String sqlquery ="SELECT * FROM FULLDETAILS WHERE Classname = 'test' ";
con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/executable","root","mysql");
st = (Statement) con.createStatement();
rs = st.executeQuery(sqlquery);
^
Run Code Online (Sandbox Code Playgroud)
我也想为Java语句实现这一点.有办法吗?
编辑:
以上给出的是一个例子,真实情况大不相同(但我基本上需要的是相同的).
的情况是,我有很多的jpanels,我想一些组件添加到它,说label,是从数据库中获取的标签的内容,其仅在运行时,我可以知道,我应该添加哪些面板零件.在这种情况下,我不能指定panel名称,如果我有10 jpanels,我想我可以使用如下字符串:
String test = " jpanel " + i + " .add(jlabel1); " ;
Run Code Online (Sandbox Code Playgroud)
将导致测试的价值将是:
jpanel1.add(jlabel1); // provided i is a string with value of i is 1
Run Code Online (Sandbox Code Playgroud)
现在我想执行这个.有办法吗?
也许这不是你想要的,但你可以 仔细使用Java的Reflection API来调用基于(例如)字符串的方法或其他东西.
SQL语句差异很大,因为它们并不是由Java内部实际执行的,它们由JDBC连接另一端的一些额外的SQL Server处理.
在某个地方,你应该有一个所有面板的初始列表,或者在启动时创建它,或者如果我是对的那么?您应该去找一个数据结构来保存它们(例如,HashMap似乎是合适的),添加所有面板并使用一个键来取回它们并根据需要添加标签.
粗略的例子:
Map<Integer, Panel> panelMap = ...
for(int i = 1; i < 10; i++) {
Panel panel = new Panel();
panelMap.put(i, panel);
}
panelMap.get(1).addLabel(labelForPanel1); (for all labels)
Run Code Online (Sandbox Code Playgroud)
当程序执行时,变量名或多或少不相关,它们都是对象.希望更适合您的需求......或者现在我完全错过了:)
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |