Can a jpanel refer to its containing jframe to run a method?

I have a JFrame using a card layout. Two separate JPanels are added to the layout, each with its own functioning command buttons. Is there a way for a button click on the first panel to flip the card, i.e., display the second panel?
Edited by: ScottBrush on May 25, 2009 3:40 PM

aw heck...
SimpleCardContainerReference.java
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SimpleCardContainerReference {
  private static final Color[] COLORS = {
    Color.white, Color.red, Color.blue, Color.yellow,
    Color.orange, Color.pink, Color.cyan
  private JPanel mainPanel = new JPanel();
  private CardLayout cardLayout = new CardLayout();
  public SimpleCardContainerReference() {
    mainPanel.setPreferredSize(new Dimension(400, 300));
    mainPanel.setLayout(cardLayout);
    for (int i = 0; i < COLORS.length; i++) {
      MyCard card = new MyCard(this, i);  // pass reference here
      JComponent component = card.getComponent();
      component.setBackground(COLORS);
mainPanel.add(component, "Panel " + i);
public JComponent getComponent() {
return mainPanel;
public void nextCard() {
cardLayout.next(mainPanel);
private static void createAndShowUI() {
JFrame frame = new JFrame("SimpleCardContainerReference");
frame.getContentPane().add(
     new SimpleCardContainerReference().getComponent());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
     createAndShowUI();
MyCard.java
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
class MyCard {
  private JPanel mainPanel = new JPanel();
  public MyCard(final SimpleCardContainerReference container, int i) {
    JLabel label = new JLabel("Card Panel " + i, SwingConstants.CENTER);
    label.setFont(label.getFont().deriveFont(Font.BOLD, 40));
    JButton button = new JButton("Next Card");
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        container.nextCard(); // container's method called here ***
    JPanel btnPanel = new JPanel();
    btnPanel.setOpaque(false);
    btnPanel.add(button);
    mainPanel.setLayout(new BorderLayout());
    mainPanel.add(label, BorderLayout.CENTER);
    mainPanel.add(btnPanel, BorderLayout.SOUTH);
  public JComponent getComponent() {
    return mainPanel;
}Edited by: Encephalopathic on May 25, 2009 7:20 PM

Similar Messages

  • After viewing & closing an image, can delete it, but not its containing folder.

    I’m going through a bunch of old files to see what I can git rid of.
    When I view and then close an image in Photoshop CS6 I can delete the image file, but not its containing folder, which stays locked, even after closing Photoshop.  Restarting and closing Photoshop again usually enables me to delete the folder — but not always.  Sometimes I have to close everything and log out and back in to be able to delete the folder.  (BTW, Acrobat and Illustrator also share this problem.)
    When you have, as I do, hundreds of files to go through, this becomes a real hassle.

    I suspect Photoshop, as a part of the file open operation, has set its current "default directory" to the folder in which you're working.  You could prove that by opening  a file in another folder and seeing if the prior folder is still unable to be deleted.
    Are you using Bridge in any part of this process?  Seems to be a better match for what you're doing.
    If you'd rather not use Bridge, have you considered using Windows Explorer and a viewer application instead of Photoshop to look through these images?  IrfanView or possibly even Windows Photo Viewer with a codec pack come to mind.
    -Noel

  • Help - JPanel communicating with its container

    Hello,
    I am fairly new to swing and I would like to know how a JPanel could communicate with a component it was added to.
    Here is an example of what I am working on (applet, not application):
    I have the following:
    //base gui
    MainWindow extends Applet
    //these have various GUI components in them
    //This contains various other JPanels representing thumbnails
    CenterThumbnails extends JPanel
    //This is a thumbnail for the above
    Thumbnail extends JPanel
    //This contains a large image and lower menu bar
    CenterImage extends JPanel
    MainWindow has a CenterThumbnails added to it
    CenterThumbnails has many Thumbnail added to it
    This is my problem: I am currently trying to add a MouseListener to Thumbnail such that when one is clicked CenterThumbnails becomes invisible and a CenterImage replaces it, but I don't know how to refer to the components containing thumbnails. For example, how could an instance of Thumbnail.mouseClicked() tell its MainWindow to make something invisible and add a new component?

    Just pass in the component you need to communicate with:
    public class MyChildComponentNLevelsDeep(AncestorComponent comp) {
       this.ancestor = comp;
    }Then you can call whatever methods in comp you want whenever you need to.
    If the component you want to communicate with is the immediate parent (or always the same place in the parent chain), you could call getParent() and cast the result to the expected type/interface. But this is a little ugly, especially if you do it over and over in a class.

  • My dad used to have my 3GS now i have it back, but when i make purchases through itunes via my phone im stuck w/ his account still in the phone. how can i reset it so its my itunes account running through it?

    i already backed it up on my mac nd reset the phone to factory setting s and re- synced it to the back up but im still under my dads itunes, like as if its still synced to my dads computer as his phone.

    Try:
    Settings > Store
    press the AppleID, then logout

  • Can JPanel know that its parent is closing?

    Hi,
    I was trying to find some way for a JPanel to know that its parent JFrame is closing. I know that the JFrame has a WindowEventListener, but does a JPanel have an event which tells it that the program is being closed?
    The reason is that in one application i have various JTables working with RMI. Whenever a client closes i would like to "unregister" them from the server. Ideally i would like to capture an event in the JPanel which tells me that the program is closing and i need to unregister my JTables from the RMI server.
    If there is no such solution I will have to put my code into the "windowClosing" event method in the JFrame instead, but i was hoping my JPanels can know when it closes.
    Thanks in advance.

    Hi
    I think there is no direct method to tell program is closing in JPanel. But u can create custom interface and call the interfact method in windowClosing event .

  • GroupLayout can only be used with one Container at a time

    Dear all,
    I am a beginner so please don't throw rocks at me...
    I have created two frames with NetBeans. One is the main frame (extends from JPanel) and the other frame I put it to be started when pressing a button from the main frame (the second frame extends from JFrame). Both frames are created using the designer in NetBeans, so the code for creating the GUI is automatically generated by NetBeans, so both frames use the same layout (GroupLayout).
    Here is the code of the button from the main frame to start the second one:
    private void manageCustomersActionPerformed(java.awt.event.ActionEvent evt) {                                                
            // TODO add your handling code here:
            CustomerGUI custGUI1=new CustomerGUI();//CustomerGUI is the second frame
            custGUI1.setVisible(true);
    }When I press this button from the main frame I get this runtime exception: Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: GroupLayout can only be used with one Container at a time. The second frame is not opened.
    How should I handle this?
    What I want to do: I want to have a main frame, from which I can start additional ones (the main frame must be always opened, while the additional ones can be closed after performing certain actions). I read a little about internal frames and I think this can be a solution, but I must edit the existing design...
    Thank you
    With respect,
    Don
    Edited by: don1983p on Dec 16, 2008 2:21 AM

    AndrewThompson64 wrote:
    There are those that maintain that JFrame should never be extended. I am not convinced, but most cases where a JFrame is extended would be better coded as simply configuring the JFrame within the main(). GUI builders such as found in NetBeans seem to extend JFrame as a matter of course.I too am not rigorous or religious about this either, but try to adhere to this as a matter of practicality and convenience, I find that if I don't extend a JComponent but rather use composition rather than inheritance, it's much easier to use objects of my class when programming in Eclipse. For instance in Eclipse (and in most IDEs), if I type my object name and then a period, it will show all of the method's available for me to use on this object. If I subclass JPanel or JFrame, I'll see a gazillion methods most I don't want to see, and thus most are clutter. On the other hand if I use composition, I'll only see a small number of methods and these will be only the methods that I want to see and need to use.

  • JPanel that close the parent JFrame

    Hello.
    I'm puzzled... how can I close a JFrame from the JPanel it contains?
    I mean:
    I have a Form that extends JFrame. In this form there's a JPanel, which has a BorderLayout. In the South part of the BorderLayout there's a JPanel (BoxLayout) that contains a JButton.
    I'd like this JButton to get disposed of the Form.
    How should I?
    Is there a better way to manage with this?
    (putting the button somewhere else...)
    Thank you

    Sorry, I forgot to mention that my sub-panel is in another class, another file.
    So I don't know how to call the parent frame.
    I tried with some .getParent(), but I get
    JPanel
    JLayerPane
    JRootPane
    and no JFrame.
    I could just put everything into 1 single class (or inner classes at least), but if there's a chance to keep them in different files, I would be glad to learn about it :)
    Thank you.

  • Can not add a picture to the JFrame from an ActionListener class

    As topic says, I can not add a picture to the JFrame from an ActionListener class which is a class inside the JFrame class.
    I have a Map.java class where I load an image with ImageIcon chosen with JFileChooser.
    I my window class (main class), I have following:
    class OpenImage_Listener implements ActionListener
         public void actionPerformed(ActionEvent e)
              int ans = open.showOpenDialog(MainProgram.this);     // "open" is the JFileChooser reference
              if(ans == open.APPROVE_OPTION)
                   File file = open.getSelectedFile();                    
                   MainProgram.this.add(new Map(file.getName()), BorderLayout.CENTER);     // this line does not work - it does not add the choosen picture on the window,
                            //but if I add the picture outside this listener class and inside the MainProgram constructor, the picture apperas, but then I cannot use the JFileChooser.
                            showMessageDialog(MainProgram.this, fil.getName() ,"It works", INFORMATION_MESSAGE);  // this popup works, and thereby the ActionListener also works.
    }So why can�t I add a picture to the window from the above listener class?

    The SSCCE:
    Ok, I think I solved it with the picture, but now I cannot add new components after adding the picture.
    Look at the comment in the actionlistener class:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    public class Test extends JFrame{
         JButton b = new JButton("Open");
         JFileChooser jfc = new JFileChooser(System.getProperty("user.dir"));
         Picture pane;
         Test(){
              super("Main Program");
              setLayout(new BorderLayout());
              JPanel north = new JPanel();
              add(north, BorderLayout.NORTH);
              north.add(b);
              b.addActionListener(new Listener());
              setVisible(true);
              setSize(500,500);
              pane = new Picture("");
              add(pane, BorderLayout.CENTER);
         class Listener implements ActionListener {
              public void actionPerformed(ActionEvent e){
                   int ans = jfc.showOpenDialog(Test.this);
                   if(ans == jfc.APPROVE_OPTION)
                        File file = jfc.getSelectedFile();
                        Test.this.add(new Picture(file.getName()), BorderLayout.CENTER);
                        pane.add(new JButton("NEW BUTTON")); // Why does this button not appear on the window???
                        pane.repaint();
                        pane.revalidate();
         public static void main(String[] args)
              Test t = new Test();
    class Picture extends JPanel
         Image pic;
         String filename;
         Picture(String filename)
              setLayout(null);
              this.filename = filename;
              pic = Toolkit.getDefaultToolkit().getImage(filename);
            protected void paintComponent(Graphics g)
                super.paintComponent(g);
                g.drawImage(pic,0,0,getWidth(),getHeight(),this);
                revalidate();
    }

  • Lots of JPanels working from a single JFrame

    What I'm trying to do in this simple program is display a JPanel (called Panel1) in a JFrame(called MainFrame), and make it so that when you click the button that is displayed in Panel1 - the frame is updated and displays a new JPanel (called Panel2). Sounds like it should be quite simple, but I don't know how to update. Does dispose() have something to do with it? Thanks in advance.
    import java.awt.*;
    import javax.swing.*;
    public class MainFrame extends JFrame
    private int x;
    public MainFrame(){
    Panel1 panel1 = new Panel1(this);
    this.getContentPane().add(panel1);
    this.setSize(1024,770);
    this.setVisible (true);
    this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    public void redisplay(JPanel jp){
    this.getContentPane().add(jp);
    public static void main(String [] args){
    MainFrame mf = new MainFrame();
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Panel1 extends JPanel implements ActionListener
    private JButton jbutton;
    private MainFrame main;
    public Panel1(MainFrame ma)
    main = ma;
    try {
    jbInit();
    catch(Exception ex) {
    ex.printStackTrace();
    void jbInit() throws Exception {
    jbutton = new JButton("Go to Panel1");
    this.add(jbutton);
    jbutton.addActionListener(this);
    public void actionPerformed(ActionEvent e){
    if (e.getSource() == jbutton) {
    Panel2 panel2 = new Panel2(main);
    main.redisplay(panel2);
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Panel2 extends JPanel implements ActionListener
    private JButton jbutton;
    private MainFrame main;
    public Panel2(MainFrame ma)
    main = ma;
    try {
    jbInit();
    catch(Exception ex) {
    ex.printStackTrace();
    void jbInit() throws Exception {
    jbutton = new JButton("Go to Panel1");
    this.add(jbutton);
    jbutton.addActionListener(this);
    public void actionPerformed(ActionEvent e){
    if (e.getSource() == jbutton) {
    Panel1 panel1 = new Panel1(main);
    main.redisplay(panel1);

    You need to remove the first panel before you add the new one, otherwise it will not be displayed properly.
    try:
    public void redisplay(JPanel newPanel) {
      getContentPane().removeAll();
      getContentPane().add(newPanel);
      // you may need this also:
      revalidate();
    // you can also try this:
    public class MainFrame extends JFrame {
      JPanel currPanel;
      public void redisplay(JPanel newPanel) {
        getContentPane().remove(currPanel);
        getContentPane().add(newPanel);
        // and you might need this:
        revalidate();
    public class

  • Calling a method on a jFrame from a jPanel that created by the jFrame

    Hi all
    I can not for the life of me work out how to do this.
    Calling a method on a jFrame from a jPanel that created by the jFrame.
    I have used this code to set a handle for one jPanel to another.
    i.e I can create new jpanel and pass in handles from one to another but not back to the jFrame.
    // this is sudo code
      private Panel_Top topPanel;
      private Menu_Panel menuPanel;
      private DataPanel dataPanel;
    //create new
        topPanel = new Panel_Top();
        menuPanel = new Menu_Panel();
        dataPanel = new DataPanel();
    // add handles from one to another
        menuPanel.setDataPanel(dataPanel);
        topPanel.setDataPanel(dataPanel);
        topPanel.setMenu_Panel(menuPanel);
        dataPanel.setMenu_Panel(menuPanel);
    // in each class I use this to set
      public void setDataPanel(DataPanel dataPanel) {
        this.dataPanel = dataPanel;
      }But I can not seam to get a handle back to the jFrame that created it.
    Please help
    as you can see I am trying but no luck so far
    Thanks

    class Life extends JPanel{
          pulic Life( JFrame owner )
                owner.doSomething(); // pass the JFrame to the constructor and feel free to use it
    }[code[                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Centering an image inside its container

    Hi,
    I have been placing several images with text on a web page on which I have been using CSS3 to float the images either left or right so that my text wraps around the image.
    Now, at the bottom of this same page, I want to add a wider image that I do not want to wrap text around.  I just want the image to centered on my page (or in its container I guess I should say, which is a div).
    If anyone could tell me the best way to do this, I would greatly appreciate it.
    Thanks in advance,
    Paul

    Thank you Ken,
    I created the .clearing rule as you suggested and added the <hr class="clearing" /> after the end of the paragraph that wraps around my second (and final) floated image.
    After the <hr class="clearing" />, I have my image reference for the image I want to be centered inside its containing DIV as follows....
    <hr class="clearing" />
    <p><img src="Images/pk_38_41_43.jpg" alt="Membrane Casting Line" width="612" height="367" class="center"/></p>
    ...the class="center" is a class I created where I set the left and right margins to "auto", hoping that this would do the job.  This didn't work.  My image appears all the way to the left.  If you can give me a hint what I should do to get it centered, I'd really appreciate it.
    Thanks again for your help,
    Paul

  • How to force a responsive Edge animation to re-evaluate its container size?

    I have an Edge animation stage embedded in a relatively complex page, inside a container div whose width is set by media queries and which may or may not be faded out by $.fadeOut. I've figured out how to trigger playback, but the stage doesn't seem to be updating its estimate of the container's width regularly. Specifically, the stage will scale itself to its min-width (disappearing if there is no min-width) and get stuck there in a specific case when the container's container has been hidden then shown again. And even when the stage is visible and on screen, if I make the browser thinner then wider, it seems to scale itself down but never back up. These weird problems would both be explained if the stage wasn't consistently re-evaluating how large its container was.
    In that case - is there a way to force the stage to re-evaluate its container size using Javascript? Wasn't able to find anything in the documentation about this.
    Thanks!

    Hi, Chi-
    Funny you should mention this... I actually just posted a blog post about something very similar.
    https://blogs.adobe.com/edge/2013/09/05/floral-matchmaker-tutorial-3-hiding-and-showing-th e-game-board/
    You can put your responsive div in an iframe set to a certain % of your main page.
    -Elaine

  • Can not update tab if its not the default sub-tab.

    Can not update tab if its not the default sub-tab.
    JDeveloper Version 10.1.2.1.0 (Build 1913)
    Hi. I have a problem with a “lovOpenWindowAction”
    The UIX is created with a master UIX and have several sub-tab that is included as UIX-pages.
    The lovOpenWindowAction lies in the included UIX-page
    The sub-tab I have a problem with has a table with users. Then I have a “Create New” button than I want to click on and select a new user that should be included in the table in the sub-tab.
    When I click on the button I open a LOV-window. Here I select the user that I want to add.
    In the LOV Action-class I save my new value in the database. Then in the method “onLovUpdate” I update the iterator with the new values from the database.
    But in my GUI the subtab is not updated until I click on it.
    But if I make the subtab the default subtab then it all works just fine and the GUI is updated directly.
    Here is the code for the tableAction in the subtab. This code lies in an included UIX-page. Target is the table id.
    <tableActions>
    <button text="Create New" id=" createNewRollperson" accessKey="N">
    <primaryClientAction>
    <lovOpenWindowAction destination="FiskeRollpersonerLOV.do"
    source=" createNewRollperson "
    targets="joinedRollpersfiskeer message"/>
    </primaryClientAction>
    </button>
    </tableActions>
    Here is some code from the master UIX-page
    <subTabLayout id="flikar">
    <subTabs>
    <subTabBar selectedIndex="${ui:defaulting(param.index,0)}">
    <contents>
    <link id="resorFlik" text="Resor"
    disabled="${sessionScope.fiske.id == null}"
    selected="${(param.source == 'resorFlik') or empty param.source}">
    <primaryClientAction>
    <firePartialAction event="changeTab" targets="flikar globalHeader">
    <parameters>
    <parameter key="source" value="resorFlik"/>
    </parameters>
    </firePartialAction>
    </primaryClientAction>
    </link>
    <link id="rollpersonerFlik" text="Rollpersoner"
    disabled="${sessionScope.fiske.id == null}"
    selected="${param.source == 'rollpersonerFlik'}">
    <primaryClientAction>
    <firePartialAction event="changeTab" targets="flikar globalHeader">
    <parameters>
    <parameter key="source" value="rollpersonerFlik"/>
    </parameters>
    </firePartialAction>
    </primaryClientAction>
    </link>
    </contents>
    </subTabBar>
    </subTabs>
    <contents>
    <switcher childName="${param.source}"
    defaultCase=”ResorFlik">
    <case name="resorFlik">
    <include node="${ctrl:parsePage(uix, 'includes/ResorFlik')}"/>
    </case>
    <case name="rollpersonerFlik">
    <include node="${ctrl:parsePage(uix, 'includes/FiskeRollpersonerFlik')}"/>
    </case>
    </switcher>
    </contents>
    </subTabLayout>
    What am I missing?? I can’t have this subtab as the default subtab! Please help me with a solution!

    hi,
    Change the condition type to manual entry.
    or
    for example delivery costs will be different at the time of PO and actual delivery costs then at the time of invoice we select planned delivery costs and settle them first with the actual delivery cost.
    Thanks & Regards,
    Kiran

  • I want to reset my privacy questions for my apple i.d. But when i request to do so it sends it to a email address that isnt on my file can anyone tell me why its not working?

    I want to reset my privacy questions for my apple i.d. But when i request to do so it sends it to a email address that isnt on my file can anyone tell me why its not working?

    1)  Apple ID: All about Apple ID security questions
    Torrifromny wrote:
    I want to reset my privacy questions for my apple i.d. But when i request to do so it sends it to a email address that isnt on my file ?
    2)  See Here.  Apple ID: Contacting Apple for help with Apple ID account security
    Ask to speak with the Account Security Team...
    3)  Or Email Here  >  Apple  Support  iTunes Store  Contact

  • How can I configure ReFS to NOT fail read operations when a checksum error is detected (on non-Storage-Spaces volumes where data integrity streams are enabled)?

    According to William Stanek, in his Windows Server 2012 R2 Inside Out: Configuration, Storage & Essentials book, this is apparently possible: (pg. 615 - here it is on Google Books: https://books.google.ca/books?id=0IyfBAAAQBAJ&pg=PT819&lpg=PT819&dq=read+operation )
        Integrity can be enabled when the system is not running on Storage Spaces. When
        integrity is enabled and ReFS detects a checksum mismatch, ReFS logs an event and
        fails the read operation by default. If you don’t want the read operation to fail, you
        can configure ReFS to continue with the read operation. A related event will be logged
        regardless.
    So then how do I configure it to do that???
    (And just to make it super-clear, I'm NOT using Storage Spaces, so there is no redundancy via mirroring/parity, and I'm not expecting any file repair - just detection of corruption. It's just a basic volume formatted with ReFS and
    with integrity streams enabled, via format E: /fs:ReFS /i:enabled
    For those who want more details, here's the situation: 
    I try to perform a read operation on a file with corrupted data (purposely done for testing using a low-level disk editor), I get a the following error message:
    And an event ID 133 from ReFSv1 gets logged in the System log:
    Clicking "Try Again" just brings up the same message, and clicking "Skip" skips the operation entirely.
    This is indeed the correct default behaviour.
    What I want instead is for the read operation to be allowed to complete, with corrupt data and all, and ONLY for the event to be logged. And according to William Stanek, this is supposed to be configurable somewhere - and after hours of searching, I haven't
    been able to find anything.

    Hi Tommy,
    >>How can I configure ReFS to NOT fail read operations when a checksum error is detected
    We can use PowerShell command Set-FileIntegrity to configure this. The specific parameter for controlling this behavior is
    -Enforce <Boolean>which indicates whether to enable blocking access to a file if integrity streams do not match the data.  
    Regarding this point, the following article can be referred to as reference.
    Set-FileIntegrity
    https://technet.microsoft.com/en-us/library/jj218351.aspx
    Best regards,
    Frank Shen
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact [email protected]

Maybe you are looking for

  • Using formats from a PC

    Hi I have some movies made with windows moviemaker that I want to add to imovie library but they wont import. I have even tried converting them using a conversion software and that doesnt work either. Has anyone else had this problem and if so how di

  • Where does destination country info come from on SD Billing ???

    On our SD invoice - in the lower portion of Item Details tab - I can see the first field as DestCtryOrde  - this shows the value  CA or Canada When I check my SD order - nowhere do I find the field Destination Country  ( I have also checked sold-to a

  • If I create an external drive with Yosemite that I can boot from, will I also be able to boot from my internal drive still?

    So I am still on Mountain Lion and I haven't upgraded because I have always been worried that Logic Pro, my Plug ins, and my Hardware wouldn't work right on the new OSX. I am now becoming interested in upgrading since Logic has a new update that I ca

  • Editing hidden layers is it possible?

    I am trying to use the eraser on a hidden layer, but photoshop is not allowing me to do this. I seem to remember that I have done this in the past. I need the layer to be invisible to work on. Can anybody tell me how I need to alter the settings to b

  • Split audio

    Re: Why can't I separate audio tracks when I import clips from an sd card into FCP 7